在一个模型 DDD .NET Core 中映射两个聚合
Map two aggregates inside one Model DDD .NET Core
我是域驱动设计主题的新手,并且使用 .NET Core 和 Angular 7 创建了一个应用程序。
我有这种情况:
我有一个包含实体和聚合的领域层,我有两个聚合:Post,评论
他们每个人都有自己的Repository和自己的Model,并会分别保存在数据库中Infrastructure层的两个表中。
当我想在前端显示 Post 时,我遇到了问题。我不想发送两个请求来获取 post 然后再发送评论。相反,我想在一个请求中同时获得它们,这意味着我的聚合应该相互连接,或者我应该创建新的聚合并将两个模型映射到内部。
最佳做法是什么?我应该创建一个名为 PublicPost 的新模型并将两个对象映射到内部吗?有没有办法使用 DI 和 AutoMapper 动态实现?谢谢
您似乎只是在从每个实体中创建一个 "aggregate"。这不是它应该如何工作的。您的聚合是域模型。其他相关实体只能通过该聚合访问和使用。
在这种情况下。您的总数是 Post
。 Comment
不是 聚合。它属于 Post
,因此是 Post
集合的一部分。换句话说,在你的 Post
模型上,你应该有像这样的方法:AddComment
、UpdateComment
、DeleteComment
,你会公开一个 Comments
read-仅列出 属性 以获取所有评论。
即使 Comment
本身就是一个聚合(即它可以完全独立存在,不与任何其他事物相关联),那么您将进入有界上下文的领域。 Comment
聚合在 Post
的上下文中与 "comment" 不同(即使它们最终归结为相同的实体类型。您需要一个域,其中 Post
是聚合,Comment
通过它和一个完全独立的域进行管理,其中 Comment
本身就是一个聚合,与 Post
.
完全无关
我是域驱动设计主题的新手,并且使用 .NET Core 和 Angular 7 创建了一个应用程序。
我有这种情况:
我有一个包含实体和聚合的领域层,我有两个聚合:Post,评论
他们每个人都有自己的Repository和自己的Model,并会分别保存在数据库中Infrastructure层的两个表中。
当我想在前端显示 Post 时,我遇到了问题。我不想发送两个请求来获取 post 然后再发送评论。相反,我想在一个请求中同时获得它们,这意味着我的聚合应该相互连接,或者我应该创建新的聚合并将两个模型映射到内部。
最佳做法是什么?我应该创建一个名为 PublicPost 的新模型并将两个对象映射到内部吗?有没有办法使用 DI 和 AutoMapper 动态实现?谢谢
您似乎只是在从每个实体中创建一个 "aggregate"。这不是它应该如何工作的。您的聚合是域模型。其他相关实体只能通过该聚合访问和使用。
在这种情况下。您的总数是 Post
。 Comment
不是 聚合。它属于 Post
,因此是 Post
集合的一部分。换句话说,在你的 Post
模型上,你应该有像这样的方法:AddComment
、UpdateComment
、DeleteComment
,你会公开一个 Comments
read-仅列出 属性 以获取所有评论。
即使 Comment
本身就是一个聚合(即它可以完全独立存在,不与任何其他事物相关联),那么您将进入有界上下文的领域。 Comment
聚合在 Post
的上下文中与 "comment" 不同(即使它们最终归结为相同的实体类型。您需要一个域,其中 Post
是聚合,Comment
通过它和一个完全独立的域进行管理,其中 Comment
本身就是一个聚合,与 Post
.