将 AsNotracking 函数添加到实体框架 6 中的计数是否对计数有影响?更具体地说,它是提高还是降低性能,还是会缓存计数结果?
使用 AsNoTracking
myContext.Products.AsNoTracking().Count();
Run Code Online (Sandbox Code Playgroud)
没有 AsNoTracking
myContext.Products.Count();
Run Code Online (Sandbox Code Playgroud) 命令处理程序是否还应该检查引用完整性?此常见问题解答建议您不要在聚合中检查此内容(http://cqrs.nu/Faq)。检查某些东西是否存在不是验证的一部分吗?
例如,您可以拥有一个可以向文章添加评论的应用程序。
该命令将包含以下字段:
对于此示例,评论和文章是不同的聚合根。
如果文章已经存在且用户存在,您是否应该检查此示例?可以给不存在的文章添加评论,感觉有点奇怪。
我对CQRS和DDD比较陌生,我想知道在域模型中实现投票机制的最佳方法是什么.
在产品上,用户可以upvote/downvote.关于投票有一些域规则,你只能投票一次,无论是向下还是向上投票.
投票和产品都是聚合根.这是最好的方法吗?建议保持聚合较小.将投票添加到产品聚合根将超时使其变得臃肿.
我正在努力解决的问题是当投票是聚合根时删除投票.您需要知道需要删除哪个投票聚合.在命令处理程序中,无法使用productId和userId从存储库中检索投票.aggregateId作为单个Guid存储在数据库中.
该命令将包含这些字段
我找到的一些可能的解决方案:
什么是最好的方法?
如果某个聚合被标记为已删除,您应该如何处理相关的聚合?
例如,假设您有一篇文章,该文章有评论,而那些评论有评论回复,而那些回复已被喜欢。
如果文章被删除