Я работаю над проектом MVC3, и мы создали архитектуру нашего проекта для поддержки наших классов примерно так:
- Классы моделей находятся в своем месте по умолчанию в проекте MVC.
- Мы добавили новый проект Entity, который содержит свойство, соответствующее именам полей (столбцов) базы данных.
- Отдельный проект для DAL (доступ к данным позже) и BAL (уровень бизнес-доступа).
Теперь как все работает:
Классы моделей содержат свойства, которые отображают свойства в проекте Entity, а также некоторые дополнительные свойства, которые нам нужны во время нашей разработки в качестве вспомогательных свойств, например. SubmissionType, чтобы проверить, какой тип отправки мы сделали с помощью того же метода публикации, как «Сохранить», «Обновить» или «Удалить».
Проект Entity будет содержать только свойства, которые сопоставляют имена столбцов в базе данных, а BAL будет взаимодействовать с классами проекта Entity для получения или присвоения значений, которые требуют операции с базой данных.
И классы в проекте Entity будут получать или назначать значения в/из классов модели. Это все потому, что наш основной проект может иметь ссылку на проекты Entity и BAL, но не наоборот.
Хорошо, теперь вопрос в том, как будут выполняться эти сопоставления? Я имею в виду присвоение значений из класса Model в классы Entity и наоборот. Для этого нам нужно добавить dll в наш проект "Omu.ValueInjecter". который можно загрузить здесь. Просто нужно добавить его в наше приложение, и оно позаботится о сопоставлении вещей всего в одной строке, например:
EmployeeEntities entity = new EmployeeEntities();
entity.InjectFrom(model);
Здесь я присваиваю значение из модели сущности, которую я получил из почтового метода. Теперь этот объект сущности будет передан в BAL и из BAL в DAL. Внедрив это решение, вам даже не нужно перемещать свою модель из-за пределов вашего проекта, что, я думаю, является болезненным усилием.
Надеюсь, это решение поможет вам
person
Jitender Kumar
schedule
01.05.2013