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 次 |
最近记录: |