.NET域模型验证和Buddy类

时间:2012-03-26 02:08:34

标签: entity-framework validation domain-driven-design

我的域模型对象(由实体框架生成)对其进行验证(使用属性和IValidatableObject接口)阅读人们似乎反对将验证属性放入域模型(伙伴类)中的注释。

我正在使用具有自己的验证属性的专用ViewModel类来处理UI中的客户端验证(ASP.NET MVC),我仍然需要域模型上的验证属性,因为我的业务层暴露给其他客户端UI,这是一个好方法吗?

1 个答案:

答案 0 :(得分:0)

是和否。这是一个很好的方法,因为您正在服务器端进行验证。您的域逻辑不应该假设客户端验证(客户端当然应该验证)。但除此之外,我不会通过属性验证域,因为验证规则是特定于上下文的;它们取决于您正在执行的操作。我将验证放在代表域的不同用例(写操作)的方法中,例如“创建客户”,“账单客户”,“取消订单”等。不要假设所有验证规则都是不变量

我没有看到如何重复使用服务器和客户端验证,而不会将您的域实体暴露在服务范围之外,这更糟糕。

相关问题