【发布时间】:2012-03-05 11:16:06
【问题描述】:
我有一个使用 EF Database First 的 MVC3 应用程序。该应用程序记录与汽车相关的各种事件。事件不允许重叠。事件是从一组基于 ViewModel 的标准 CRUD 屏幕创建和添加的。然后通过一个服务将它们添加到上下文中,该服务只是通过事件存储库插入它们。
人们正在为汽车创建租用期。因此,我需要防止汽车有重叠的租用期,因为一次只有一个人可以租用汽车。
验证不能创建重叠事件的最佳方法是什么?放置此逻辑的最佳位置在哪里。我假设在域层中,因此可以重用核心逻辑。这属于存储库还是应该在实体本身上实现?这是一个多用户系统,所以我需要防止两个人同时添加事件导致重叠问题。
任何建议表示赞赏。
谢谢
格雷姆
【问题讨论】:
-
我想,我们需要更多细节,你所说的重叠事件是什么意思。在一个网络应用程序中,两个用户做同样的事情是很正常的。您是否要确保 2 个用户不能发送相同的事件,其中该事件是域概念而不是 .net 概念?
-
我认为这是应用领域事件和事件溯源模式的完美案例。 Udi Dahan 和 Greg Young 都有很多关于它的帖子和演示。
-
已更新以提供域的详细信息
-
“重叠事件”是什么意思?
-
事件有开始日期和结束日期。两个事件不应占用相同的时间。
标签: asp.net-mvc asp.net-mvc-3 entity-framework domain-driven-design