加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net – MVC,ViewModels和Validation

发布时间:2020-12-16 06:36:53 所属栏目:asp.Net 来源:网络整理
导读:我正在使用POCO创建一个带有EF4的MVC3应用程序.我已经为我的EF实体添加了验证属性.现在,当我构建视图时,我想使用视图模型(也许使用 AutoMapper来填充它们). 我遇到的问题是我必须在我的视图模型上重新定义我的验证属性,这违反了DRY主体.例如,如果我决定更改
我正在使用POCO创建一个带有EF4的MVC3应用程序.我已经为我的EF实体添加了验证属性.现在,当我构建视图时,我想使用视图模型(也许使用 AutoMapper来填充它们).

我遇到的问题是我必须在我的视图模型上重新定义我的验证属性,这违反了DRY主体.例如,如果我决定更改字段的大小,我必须更改POCO和使用它的任何视图模型的MaxLength属性.

是否有一些棘手的方法可以将验证规则从我的POCO映射到我的视图模型?

解决方法

我也很挣扎,我同意它违反DRY.我最近发布了一个关于这个 Here的问题并得到了相当多的阻力.

在任何现实世界的应用程序中,您都无法获得完美的DRY.有时你会因违反原则而不是盲目地坚持下去而获得更多好处.

编辑:

人们也可能认为DRY可能违反单一责任原则(SRP).通过重用类似的代码,您现在正在使代码执行多个操作.如果您认为数据模型和视图模型具有不同的目的,从而具有不同的职责……将它们组合到单个模型中会违反SRP.也就是说,通过使您的数据模型也成为一个视图模型,这是两个不同的职责.

现在,人们可以想到在这方面可以尝试和协调SRP与DRY的多种方法,但在某些时候你必须权衡成本的好处.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读