asp.net存储库问题,关于exaclty填​​充域对象属性的位置

时间:2011-09-11 17:04:54

标签: asp.net asp.net-mvc-3 ado.net repository

我正在使用ASP.NET MVC 3,我的存储库正在使用ADO.NET和存储过程来填充我的域对象。我不是100%确定应该填充某些物体的地方。例如,我需要根据检索到的UserId填充User属性。这样做的最佳方法是什么?对于每个域对象,我有一个存储库和一个管理事务和连接的工作对象单元。

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 个答案:

答案 0 :(得分:2)

在不了解您的域名的情况下,很难回答问题。这与域驱动设计比与MVC框架更相关。您需要调查的概念在DDD中称为聚合。聚合是逻辑上适合的模型对象的集合。聚合中的一个模型将是一个根对象,它处理聚合中的其他模型对象,包括持久性。

您将拥有每个聚合根的存储库,而不是每个模型对象的存储库。我建议通过InfoQ中名为Domain Driven Design Quickly的免费下载迷你软件。作者总结了Eric Evans在这个迷你书中的优秀领域驱动设计书。