Domain driven design DDD域实体与持久性实体

Domain driven design DDD域实体与持久性实体,domain-driven-design,ddd-repositories,ddd-service,dddd,Domain Driven Design,Ddd Repositories,Ddd Service,Dddd,在DDD中,我们说域实体不是数据库模型/实体的表示。我们还说,为了正确地从应用程序中提取域模型,域模型不应该具有关于其持久化方式或返回给客户机方式的任何信息 我遇到的问题是,在处理大多数ORM或数据库抽象时,我们需要使用一些特定于数据库的注释对数据库实体进行注释,从而打破了规则 这是否意味着我们应该为域创建一个实体,为持久化创建另一个实体 我不熟悉这一点,也不确定正确的方法是什么。域模型往往是一个相当封闭的事物。当涉及ORM实体时,这样的域对象不是很好的候选对象 如果您的域实体看起来像数据

在DDD中,我们说域实体不是数据库模型/实体的表示。我们还说,为了正确地从应用程序中提取域模型,域模型不应该具有关于其持久化方式或返回给客户机方式的任何信息


我遇到的问题是,在处理大多数ORM或数据库抽象时,我们需要使用一些特定于数据库的注释对数据库实体进行注释,从而打破了规则


这是否意味着我们应该为域创建一个实体,为持久化创建另一个实体



我不熟悉这一点,也不确定正确的方法是什么。

域模型往往是一个相当封闭的事物。当涉及ORM实体时,这样的域对象不是很好的候选对象

如果您的域实体看起来像数据容器,可以用作ORM实体,如果带有一些属性,那么您的域充其量是没有封装的,充其量是一个贫乏的模型

在我看来,您通常会得到一个域模型和某种形式的面向数据的ORM模型

有点像旁白:

一旦你开始询问你的ORM带来了什么,你可能想看看,如果你放弃ORM并使用其他一些原始/较低级别的数据访问技术,你会损失多少。甚至可能会有一些性能提升。如果我在这件事上有发言权,我不会使用ORM