【问题标题】:.NET Domain Model validation and Buddy Classes.NET 域模型验证和伙伴类
【发布时间】:2012-04-09 14:00:24
【问题描述】:

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

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

【问题讨论】:

  • 似乎违反了 DRY,因为您在两个不同的地方创建了两次验证只是为了满足框架的需要。
  • 谢谢,那么最好的方法是什么?请注意,我需要对域模型进行验证,因为我有其他客户端使用业务层。

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


【解决方案1】:

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

我不明白如何在不将域实体暴露在服务边界之外的情况下重用服务器和客户端验证,这要糟糕得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多