如何验证子实体在EF4.2中不重叠的时间段?

时间:2011-11-24 09:19:27

标签: asp.net-mvc-3 entity-framework validation repository

我已经在我的MVC3网站上设置了EF4.2(数据库优先)。我必须实体夹具和夹具期间。夹具期间有开始和结束日期。

我需要允许客户在我的MVC3站点的单个视图中添加/编辑灯具周期。

我有这个工作。我还设法验证夹具期间的开始/结束日期是否正确。我在夹具周期的部分类中实现了IValidateObject。但是现在我需要验证夹具周期本身是否彼此不重叠。

我应该如何确保期间不重叠?我应该在哪里检查?我打算在ViewModel级别(这似乎很容易)这样做,但它似乎是域级关注。它应该在实体,存储库,服务层吗?

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

答案是在数据库中创建一个after触发器以进行插入和更新。如果行重叠,那么我引发了一个错误并回滚插入。然后,我在对象上下文的SaveChanges上捕获了SQL异常,并通过向ModelState添加错误来处理。