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

asp.net-mvc – 将Linq2Sql对象传递给Views有什么问题?

发布时间:2020-12-16 03:33:49 所属栏目:asp.Net 来源:网络整理
导读:在 previous question,@ Darin Dimitrov answered: In your case the worst thing is that you are using your Linq2Sql models inside your views and that’s one of the worst anti-patterns I see people doing in ASP.NET MVC applications. You absol
在 previous question,@ Darin Dimitrov answered:

In your case the worst thing is that
you are using your Linq2Sql models
inside your views and that’s one of
the worst anti-patterns I see people
doing in ASP.NET MVC applications. You
absolutely should be using view
models. That’s what views should be
passed from controllers and that’s
what controllers should get from
views.

为什么将Linq2Sql对象作为模型传递是如此糟糕?

解决方法

将Linq2Sql对象作为模型传递给视图和控制器是很糟糕的原因有很多,而且在单个答案中覆盖所有这些对象是相对困难的.所以,这是我的前三名:

关注点分离 – Linq2Sql对象中嵌入了DAL逻辑,这违反了SoC.此外,您可能希望验证从视图传递的数据,这应该在模型中完成(不是控制器!).但是,如果您将此逻辑添加到L2S模型,那么您也违反了SoC(更不用说如果重新生成L2S模型,您的验证将被删除)

封装 – 您的L2S类有很多成员,您的视图和控制器可能不需要访问.一个合适的模型将封装这些成员以使它们无法访问.

可维护性和可重用性 – 在某些时候,您可能决定要更改后备存储.如果你使用你的L2S类作为模型,那么你最终会触摸很多代码来进行更改,而如果你推出自己的模型,那么你只需要担心改变你的模型而不需要其他任何东西.此外,不要弄乱你的L2S模型(参见上面的SoC)意味着它们可以跨项目重用.

(编辑:李大同)

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

    推荐文章
      热点阅读