当前位置:  开发笔记 > 编程语言 > 正文

域模型保存

如何解决《域模型保存》经验,为你挑选了1个好方法。

最近读完埃里克埃文斯领域驱动设计(非常有用,非常有乐趣)然而,自完成本书以来,第一个重大项目得到了如何处理领域模型保存的问题?

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

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

ParentClass.Save {

ParentClassDB.Save

ChildObject1.Save

       ChildObject1DB.Save

ChildObject2.Save

       ChildObject2DB.Save  
  etc etc 

}

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



1> Romain Verdi..:

在DDD中,域实体不会处理其持久性.Save()理想情况下,你不应该有一个方法.

您的存储库将具有这样的Save方法,该方法在参数中采用实体实例:

public class PersonRepository
{
   //...

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

   //...
}

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

如果我正确理解了您所做的事情,可能需要将您放置在域实体中的持久性逻辑移动到其他地方,可能是存储库或存储库使用的DAL.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有