关于在哪里精确填充域对象属性的 asp.net 存储库问题

发布于 2024-12-03 18:50:36 字数 437 浏览 0 评论 0原文

我正在使用 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; }
}

任何见解将不胜感激。

I'm using ASP.NET MVC 3 and my repositories are using ADO.NET with stored procedures to fill my domain objects. I'm not 100% sure where certain objects should be filled. For example I need to fill the User property based on the UserId retrieved. What is the best approach to do this? For each domain object I have a repository and a unit of work object that manages the transaction and connection.

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; }
}

Any insight would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦归所梦 2024-12-10 18:50:36

如果不了解您的领域的更多信息,就很难回答这个问题。这更多地与领域驱动设计相关,而不是与 MVC 框架相关。您需要研究的概念在 DDD 中称为聚合。聚合是逻辑上组合在一起的模型对象的集合。聚合中的模型之一将是处理聚合中其他模型对象(包括持久性)的根对象。

您将为每个聚合根而不是每个模型对象拥有一个存储库。我建议您阅读 InfoQ 提供的免费下载迷你书快速领域驱动设计。作者在这本迷你书中总结了 Eric Evans 的优秀领域驱动设计书籍。

Without knowing more about your domain it is difficult to answer the quesiton. This is more related to Domain Driven Design than to the MVC framework. The concept you need to investigate is called Aggregates in DDD. An aggregate is a collection of model objects that logically fit together. One of the models in the aggregate would be a root object that handles the other model objects in the aggregate including persistence.

You would have a repository for each aggregate root and not for each model object. I would recommend going through the free downloadable minibook from InfoQ called Domain Driven Design Quickly. The author has summarized the excellent Domain Driven Design book by Eric Evans in this minibook.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文