Re: Где лучше расположить код?
От: sertstyle Россия http://sert-style.ru/
Дата: 11.10.12 06:14
Оценка:
Здравствуйте, Eldar9x, Вы писали:

E>Одна библиотека BLL.dll содержит бизнес-логику приложения.

E>Другая библиотека DAL.dll представляет собой слой доступа к данным.
E>В библиотеке DAL.dll есть вот такой код (используется Entity Framework — Code First):

E>
E>namespace Med.Server.DAL
E>{
E>    public static class Environment
E>    {
E>        internal static readonly DB DB = new DB(); // DB - это наследник DbContext

E>        public static IQueryable<SheduleUnit> QueryUpdateUnits(DateTime fromDateTime)
E>        {            
E>            return from shedule in DB.Shedules
E>                   join unit in DB.Units on shedule.Unit.Id equals unit.Id
E>                   where fromDateTime > shedule.StartDateTime
E>                   select new SheduleUnit { Shedule = shedule, Unit = unit }; 
E>        }

E>        public static List<string> GetUpdatableUnitsAndUpdateShedule() 
E>        {           
E>            List<string> units = new List<string>();

E>            DateTime dateTimeNow = DateTime.Now;

E>            var query = QueryUpdateUnits(dateTimeNow);
E>            foreach (var su in query)
E>            {
E>                units.Add(su.Unit.Name);
E>                su.Shedule.StartDateTime = dateTimeNow + TimeSpan.FromSeconds(su.Shedule.Period);
E>            }

E>            if (units.Any())
E>                DB.SaveChanges();

E>            return units;
E>        }
E>    }
E>}
E>


E>Правильно ли так будет вообще? Ведь метод GetUpdatableUnitsAndUpdateShedule, вроде как, содержит некую бизнесс-логику, следовательно, ему тут не место?

E>Может быть будет более правильно сделать класс DB public, и операции в BLL.dll производить непосредственно с ним, избавшись заодно и от класса Environment (это фасад библиотеки DAL) и сделав POCO классы тоже public?

+
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.