0

Я недавно последовал за этим tutorial, который хорошо показывает, как создать простое приложение ASP.NET MVC 4, которое сначала изменяет содержимое базы данных с использованием кода EF5. У меня есть 2 вопроса:Использование классов «Модель» в качестве объектов домена

  1. В готовом решении для объектов нет картографических или доменных классов. Является ли EF эффективным использованием классов модели для их автоматического создания? Если да, есть ли какие-либо недостатки в этом подходе?
  2. Возможно ли достичь чего-то подобного с помощью nHibernate? То есть возможно ли/рекомендуется использовать тот же класс, который передается представлению в качестве модели для создания схем БД и т. д.? Если да, то как мне это сделать?

ответ

0

Имейте в виду, что этот учебник нацелен на то, чтобы предоставить вам самый быстрый способ добиться успеха с помощью MVC4 & EF5. В этом случае EF будет использовать Convention. для создания БД, установления связей между таблицами, установки первичных ключей ... И поэтому нет классов сопоставления вообще.
В этом учебном пособии ваши объекты EF используются как классы домена и модели просмотра. Очевидно, что это не лучший способ уважать принципы SRP и SOC. Но иногда это может соответствовать вашим потребностям!

Всегда лучше иметь в виду принцип KISS и избегать нанесения большого количества абстракции и слоев в приложении для этого. Если ваше приложение в порядке, как это хорошо. И когда потребуется отделить вещи в разных слоях, для любых потребностей бизнеса рефакторинг поможет вам!

EF предлагает еще 2 способа сопоставления объектов с объектами DB, Annotations и Fluent API. Аннотации - это круто, потому что атрибуты разделяются с MVC, чтобы включить проверку клиента, но у него есть некоторые ограничения, вот почему помогает Fluent API.

То, что я бы рекомендовал в конце, заключается в том, чтобы сохранить его простым. В больших приложениях может быть проще иметь отдельную модель представления и сопоставить ее с объектами вашего домена, возвращаемыми вашими бизнес-услугами, на уровне построителя модели. Но на небольших приложениях, которые не должны часто меняться, почему бы не использовать одни и те же объекты как для модели представления, так и для домена, как в учебнике?

Вот link to a recent EF training Я сделал, вы можете найти полезную информацию, чтобы идти дальше.

Смежные вопросы