Где лучше расположить код?
От: Eldar9x  
Дата: 07.10.12 15:01
Оценка:
Одна библиотека BLL.dll содержит бизнес-логику приложения.
Другая библиотека DAL.dll представляет собой слой доступа к данным.
В библиотеке DAL.dll есть вот такой код (используется Entity Framework — Code First):

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

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

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

            DateTime dateTimeNow = DateTime.Now;

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

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

            return units;
        }
    }
}


Правильно ли так будет вообще? Ведь метод GetUpdatableUnitsAndUpdateShedule, вроде как, содержит некую бизнесс-логику, следовательно, ему тут не место?
Может быть будет более правильно сделать класс DB public, и операции в BLL.dll производить непосредственно с ним, избавшись заодно и от класса Environment (это фасад библиотеки DAL) и сделав POCO классы тоже public?
int i;
i = (i++)+(i++);
cout << i;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.