Хорошо ли хранить классы CustomMembershipUser и Agregate в доменной библиотеке - PullRequest
0 голосов
/ 19 сентября 2011

Мне нужно всего лишь несколько подтверждений, что я делаю что-то правильно или я совершаю ужасную ошибку :)1) Я поместил свой слой доступа к данным (MyProject.Domain) в отдельную сборку.Там у меня есть объект сущности "Пользователь", который имеет свойства в отношении 1: 1 с таблицей "Пользователь" в моей базе данных.Я также расширяю этого пользователя от "MembershipUser", потому что я использую пользовательскую схему для членства.Это хорошее место для хранения сущности MembershipUser?

2) У меня есть таблица «Image» в базе данных и сущность «Image» в библиотеке моего домена.Изображение в базе данных имеет столбец «AuthorId», который соответствует таблице «Пользователь».Также изображение содержит список «комментариев».Поэтому я структурирую объект домена Image следующим образом:

public class Domain
{
   public int ImageId{get;set;}
   public string Name{get;set;}
   public Author Author{get;set;}
   public IEnumerable<Comment> Comments{get;set;}
}

Это хороший способ или, может быть, мне следует собрать все данные в классе ViewModel?

1 Ответ

1 голос
/ 19 сентября 2011

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

Модели представлений - это классы, которые специально определены для данного представления.Модели представлений всегда определяются внутри проекта ASP.NET MVC, поскольку они тесно связаны с конкретными представлениями, которые сами определены в проекте ASP.NET MVC.Доменные модели могут быть определены в отдельной сборке.Они предназначены для повторного использования в других приложениях.Представьте, что ваши доменные модели являются основой вашего бизнеса.Если завтра ASP.NET MVC перестанет быть современным и появится что-то еще, вы все равно сможете повторно использовать модели вашего домена.Модели представлений являются только конкретным представлением моделей вашего домена для некоторых заданных и конкретных представлений.

...