gpt4 book ai didi

domain-driven-design - 领域模型保存

转载 作者:行者123 更新时间:2023-12-04 08:23:03 24 4
gpt4 key购买 nike

最近读完了 Eric Evans 领域驱动设计(非常有用,非常有趣)但是在完成这本书后来到第一个主要项目,并遇到了如何处理领域模型保存的问题?

我很欣赏服务/存储库的使用以及它们如何帮助模型,但它们将如何处理模型保存?

我以前的域模型保存将遵循以下方法调用结构;

父类.保存
{

ParentClassDB.Save

ChildObject1.Save

       ChildObject1DB.Save

ChildObject2.Save
       ChildObject2DB.Save  
etc etc

}

服务是否控制对子对象调用适当的保存例程?

最佳答案

在 DDD 中,域实体不关心它的持久性。你不应该有 Save()方法就可以了,理想情况下。

你的仓库会有这样一个 Save方法,在参数中采用实体实例:

public class PersonRepository
{
//...

public void Save(Person person)
{
this.dataContext.Save(person);
}

//...
}

根据您的堆栈,ORM 将处理对象保存,或者您将通过构造一个查询来保存该人,或者您将使用您的实例值等填充存储过程参数。

如果我正确理解你所做的,可能有必要将你放在域实体中的持久性逻辑移到别处,可能是在存储库中,或者在你的存储库使用的 DAL 中。

关于domain-driven-design - 领域模型保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/681103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com