Вопрос репозитория asp.net о том, где точно заполнять свойства объектов домена - PullRequest
1 голос
/ 11 сентября 2011

Я использую ASP.NET MVC 3, а мои репозитории используют ADO.NET с хранимыми процедурами для заполнения объектов моего домена. Я не уверен на 100%, где определенные объекты должны быть заполнены. Например, мне нужно заполнить свойство User на основе извлеченного UserId. Каков наилучший подход для этого? Для каждого предметного объекта у меня есть хранилище и единица работы, которая управляет транзакцией и соединением.

public class Comment
{
    public string Post { get; set; }
    public int UserId { get; set; }        
    public int ParentCommentId { get; set; }
    List<Comment> Comments { get; set; }
    public User User { get; set; }
}

Любое понимание будет с благодарностью.

1 Ответ

2 голосов
/ 11 сентября 2011

Не зная больше о вашем домене, сложно ответить на этот вопрос.Это больше относится к доменному управлению, чем к инфраструктуре MVC.Концепция, которую вы должны исследовать, называется Aggregates in DDD.Агрегат - это набор объектов модели, которые логически сочетаются друг с другом.Одной из моделей в совокупности будет корневой объект, который обрабатывает другие объекты модели в совокупности, включая постоянство.

У вас будет хранилище для каждого совокупного корня, а не для каждого объекта модели.Я бы порекомендовал пройтись по бесплатной загружаемой мини-книге от InfoQ под названием Domain Driven Design Quickly .Автор кратко изложил в этой мини-книге превосходную книгу Эрика Эванса «Дизайн, управляемая доменом».

...