日期:2014-05-17  浏览次数:21014 次

使用ADO.NET实体框架比直接用ADO.NET字符串连接数据库强在哪里呢?
请前辈们比较下两者的优缺点
谢谢!

------解决方案--------------------
不是前辈,但是感觉用Entity framework 轻松一些
------解决方案--------------------
本质上是ORM与数据表映射的区别,核心是ORM解决了OO与关系型数据库的阻抗问题。

ADO.NET EF更OO,如果是用POCO,那么做业务逻辑的时候可以灵活运用各种设计模式,比ADO.NET(DataSet)强大很多,业务模型越复杂,ORM的优势越明显。
EF的缺点是有一定的学习曲线,得理解ORM的意义,否则用起来很别扭。

ADO.NET的优点是简单直接,快速上手,如果项目只是简单的CRUD,那么ADO.NET最适合了。

两者都可以用linq的(准确地说是Linq2EF和Linq2ADO.NET)。

------解决方案--------------------
探讨
如果你的实体完全按照数据库表结构来设计那么没优势。

如果你的实体按照问题领域来设计,那么,实体与表之间产生的不一致的地方(如:类型可以继承,而关系数据库不直接支持继承),Ef框架提供了一些比较方便的解决方案帮你处理这些问题。

------解决方案--------------------
等你写了很多ado.net就会觉得ef真是好用。这也是为什么会出现ef的原因,因为ado.net难用。