应该张贴,并在聚合后进行评论或者他们应该是自己的集合体?

考虑对象典型的博客PostComment

对于DDD演示的例子我已经建设我有(到现在)发现,无论是实体PostComment是适当的为同累积总的Post汇总。 但现在我不那么肯定..

在我的控制器,我发现,像你所期望的,我需要添加和删除CommentsPosts 。 以我目前的模型我没有跟踪者的身份Comment全球(如蓝皮书建议)。 你可能会想到,我的行动来删除Comment可能是这样的:

public ActionResult DeleteComment(int postID, int commentID)

很显然,我需要Post的ID从资源库以及特定标识检索CommentPost ,我想删除。

我的问题是身体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 });

..或者,我应该选择Comment从类似这样的回购?:

var comment = this._postRepo.CommentWithID(commentID)

..要么:

var comment = this._postRepo.CommentWithID(postID, commentID)

因为我不应该需要上面的两个例子似乎有点傻的Post ID,如果我能跟踪Comment全球。 但如果我跟踪Comment全球范围内,不应该它有 ​​它自己的聚合,然后是权当PostComment似乎一起去?

--------------解决方案-------------

现在的问题是一个注释是否有岗位总量之外的任何意义。 恕我直言,没有任何,所以我觉得你不应该移动到自己的总的注释。

在我看来,评论要发表总结的一部分,但是评论应该是实体,bcoz用同样的答案两个注释仍然是两个独立的评论。

如果创建作为单独的总评论,其中的评论是根的话,评论将有存储方法,这意味着任何机构可以创建发表评论,但其基本思想是没有其post.Comment与员额有关评论不应该被创建。

如果你觉得从逻辑上讲,评论不能进化它自己。 这意味着,评论创建时应该是后期的一部分。

正如其他人所说,这在很大程度上取决于评论是否有邮政以外的任何意义。 我倾向于认为,这样做,有几个原因。 首先,员额以外的东西在概念上可以在一个正常的博客引擎评论(如图像,新闻项目,另一个注释)。 其次,也提出来了,你经常看到的只是注释窗口小部件,不以他们的职位。 我也觉得这个场景让你苦苦思索些鸡毛蒜皮的一点的决定。

也就是说,如果你选择,使他们一个集合,那么请记住,进行查询时,依靠像缓存和这样的机制,使有效率的一个仓库往往会加载整个集合。 所以,你的情况是一个职位查询,随后是“正确”的评论编辑/删除/不管搜索的是这篇文章的评论。

分类:asp.net mvc的 时间:2015-03-15 人气:4
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.156 (s). 10 q(s)