【发布时间】:2013-08-22 21:10:23
【问题描述】:
我目前有一个受胖控制器影响的应用程序。我正在尝试将业务逻辑提取到服务层中,并希望阐明我的方法。
为了引发模型错误,我计划使用如下所述的方法:http://www.asp.net/mvc/tutorials/older-versions/models-%28data%29/validating-with-a-service-layer-cs - 使用 IValidationDictionary 方法大约降低了 1/2。
但我发现新版本的文档中没有讨论这种方法。在较新的版本中,服务层部分中的验证已完全删除。
我希望对于以下问题/验证我的方法有足够的背景:
- 我相信上面链接中的方法已经过时,不应该用于支持 DataAnnotations(并且可能覆盖 IsValid - 这可能很天真,我不完全理解验证 ModelState.IsValid)。我的理解是否正确,还是这些问题有些不同?
- 我希望对实体(在具有到实体的字段 1-1 映射的简单表单上)和 DTO(在具有不太简单映射到实体的表单上)的强类型视图进行混合。是否可以让实体验证冒泡到 DTO 以避免重复非业务需求验证?在没有 DTO 的情况下可以强类型化的实体上,我是否应该在实体上包含业务逻辑验证(这似乎是错误的)?我是否正确地考虑/处理了这一点?
- 该站点正在使用存储库方法 - 我可以跳过服务层并让我的业务逻辑分布在数据注释和存储库中吗?我又问对了问题吗?
【问题讨论】:
标签: c# entity-framework asp.net-mvc-4 dto business-logic