ado.net 和linq to sql和entity framework,orm 区别

低丶调 2015-06-09 09:36:35
在写dal层的时候,每次的操作就是有多少个表,就写多少个model和dal类,并且每个类
里几乎都是增删改查的一些类似的方法,虽然dbhelper已经封装了一些重复的代码,
但是对于每个类写这些add,update,delete方法,也是比较蛋疼的,大家教教我吧,
在网上搜的这些东西,我都看不太明白
...全文
476 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿斯顿发凌 2015-12-09
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
初识的话,可以想简单点, ado.net 就是你自己写sql语句(select * from tablename)来实现从数据库中取数据 EF可以让你使用C#的语法,来完成对数据库进行操作(ef会在底层将你写的C#语法转换成对应的sql语句) EF是ORM的其中一种 linq to sql嘛 你就把当成ef的早期版本(虽然这么比喻好像不是特别恰当)就是了
低丶调 2015-06-09
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
你的PetShop式的代码不用了之后,再来考虑 ado.net、linq to sql、ef 等等的“区别”,其实就是在(相对来说)同一个层面的问题的。它们的区别就在ORM的程度的不同。 所谓ORM,就是将你的 .net 的自定义业务实体类型的对象与关系数据库表的增删改查操作进行“自动适配”的技术,目的是让它逐步变成“调用一条语句就能实现”的傻瓜化操作。ADO.NET几乎不包含ORM成分,而EF则是实现了较多的ORM机制。它们体现了在ORM方面的革新。 然而,微软的EF增加了许多繁琐的东西,使得你快速改变业务实体类型时变得非常地麻烦,甚至经常反复遇到.edmx系统无法使用、必须从“头”删除重建之类的问题。加上我们完全转到 MongoDB 之类的 NoSql,最后只能选择放弃看上去挺有前途的 EF。
怎么用的
  • 打赏
  • 举报
回复
你的PetShop式的代码不用了之后,再来考虑 ado.net、linq to sql、ef 等等的“区别”,其实就是在(相对来说)同一个层面的问题的。它们的区别就在ORM的程度的不同。 所谓ORM,就是将你的 .net 的自定义业务实体类型的对象与关系数据库表的增删改查操作进行“自动适配”的技术,目的是让它逐步变成“调用一条语句就能实现”的傻瓜化操作。ADO.NET几乎不包含ORM成分,而EF则是实现了较多的ORM机制。它们体现了在ORM方面的革新。 然而,微软的EF增加了许多繁琐的东西,使得你快速改变业务实体类型时变得非常地麻烦,甚至经常反复遇到.edmx系统无法使用、必须从“头”删除重建之类的问题。加上我们完全转到 MongoDB 之类的 NoSql,最后只能选择放弃看上去挺有前途的 EF。
  • 打赏
  • 举报
回复
不需要这样写。 .net这种写法来自于10几年前的PetShop开源小程序,那时候asp.net还是如火如荼被人追捧的技术,微软为了更好地推广asp.net而模仿java中的程序做了一个一模一样的程序,就是petshop,用来对比运行效果。那个时候,微软没有什么ORM的概念,而且这个小项目是以抄袭java中的PetStore范例项目的代码为重点。 实际上petshop体现了一种“竖井式思维”设计模式,繁琐而臃肿。竖井式思维最重要的“理论根据”就是说:“一旦需要将来的新人来修改,它比较傻瓜化”,因为它里边没有工具化、发散的逻辑,它仅仅是“竖井”。 而你问的那些,则是专注于DAL操作的工具化的框架,不纠结业务逻辑。按照工具化的思维方式,实际上你可以不再自己编写DAL层代码了,而是直接调用这类框架进行高效率的“声明、配置”即可完成数据库操作层的功能需求。
moonwrite 2015-06-09
  • 打赏
  • 举报
回复
敲了很多 但提交不成功 没了 简短点 搜索:Repository 模式 看开源项目:nopCommerce
moonwrite 2015-06-09
  • 打赏
  • 举报
回复
EF 是 linq to sql的升级版 而且微软早就放弃linq to sql 了 所以就不讨论linq to sql了 ado.net 和 EF EF是ORM框架 最后调用的应该是ado.net DBfirst的情况下 可以让你不用写Model 另外你也可以用CodeSmith来生成Model 厌倦了每个类add,update,delete, 可以搜索一下:Repository 模式 完全的应用可以看看开源项目:nopCommerce

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧