Моя команда рассматривает возможность перепроектирования некоторых наших систем для соответствия следующему шаблону
- Уровень данных (поддерживается Entity Framework, сначала база данных)
- Модели (POCOS, а не те же модели, что и в DAL)
- Логика Уровень (ссылки на уровень данных и модели)
- Презентация ASP.NET
Код: Выделить всё
public class Configuration
{
public int Id { get; set; }
public string Description { get; set; }
}
public class Manufacturer
{
public int Id { get; set; }
public string Description { get; set; }
}
public class Car
{
public int Id { get; set; }
public string Name { get; set; }
public Manufacturer Make { get; set; }
public IEnumerable AvailableConfigurations { get; set; }
}
Код: Выделить всё
public interface ICarLogic
{
void Add(Car);
void Update(Car);
void Delete(Car);
void GetAll(Car);
void GetByManufacturer(ManfacturerId);
}
Таблица
Столбцы: идентификатор, модель
Таблица: Конфигурация
Столбцы: Идентификатор, Описание
Таблица: Производитель
Столбцы: Идентификатор, Описание
Таблица: Car_ConfigsСтолбцы: Car_Id_Fk, Configuration_Id_Fk
Итак, теперь вопросы:
- При вызове обновления на реализаторе ICarLogic, следует ли проверять каждое свойство, такое как AvailableConfigurations, чтобы увидеть, чего нет в базе данных и что необходимо добавить, что находится в базе данных, а не в IEnumerable, что следует удалить, а затем выполнять все обновления таблиц оттуда? /li>
Если нам следует отказаться от запросов READ, таких как GetAll, GetByManufacturer и т. д., поскольку многие из наших моделей их будут несколько, тогда мы перейдем к GetAllWithConfigurationsAnd.... GetByManufacturer, GetByManufacturerWithConfigurations или просто всегда включать свойства, даже если некоторые модели будут иметь до 10 объединений, когда эта информация даже не нужна вызывающему объекту?
Подробнее здесь: https://stackoverflow.com/questions/272 ... dling-crud
Мобильная версия