Mat*_*caj 5 asp.net-mvc blogs domain-driven-design aggregate repository
考虑带有对象Post和的典型博客Comment。
对于我一直在构建的 DDD 演示示例,我(直到现在)发现实体Post和Comment都适用于同一个聚合——Post聚合。但现在我不太确定..
在我的控制器,我发现,像你所期望的,我需要添加和删除Comments的Posts。使用我当前的模型,我不会跟踪Comment全局的身份(就像蓝皮书建议的那样)。您可能期望我删除 a 的操作Comment可能如下所示:
public ActionResult DeleteComment(int postID, int commentID)
Run Code Online (Sandbox Code Playgroud)
很显然,我需要Post的ID从资源库中,并标识为特定检索Comment上Post,我想删除。
我的问题是DeleteComment(动作的主体:
可以通过Post查询机制遍历以获取Comment删除吗?像这样:
var comment = this._postRepo.WithID(postID).Comments
.SingleOrDefault(c => c.ID == commentID);
this._postRepo.Delete(comment);
return RedirectToAction("detail", new { id = postID });
Run Code Online (Sandbox Code Playgroud)
..或者我应该Comment从类似于这个的回购中选择?:
var comment = this._postRepo.CommentWithID(commentID)
Run Code Online (Sandbox Code Playgroud)
..或者:
var comment = this._postRepo.CommentWithID(postID, commentID)
Run Code Online (Sandbox Code Playgroud)
上面的两个例子可能看起来有点傻,因为Post如果我可以Comment全局跟踪,我不应该需要ID 。但是,如果我正在跟踪Comment全球,它不应该有自己的聚合,然后是正确的时间Post和Comment似乎一起去吗?
| 归档时间: |
|
| 查看次数: |
346 次 |
| 最近记录: |