使用ADO.Net实体模型的利弊

时间:2009-12-08 14:37:57

标签: .net ado.net-entity-data-model

HI

将ADO.NET实体模型用作数据层有哪些优缺点?如果我打算使用这项技术,我应该使用LINQ吗?

由于

2 个答案:

答案 0 :(得分:6)

首先:您不必使用LINQ来使用实体框架(EF),但它确实有帮助。 EF基于EF团队称之为 Entity SQL 的东西,因此当您使用LINQ to Entities时真正发生的事情是LINQ表达式被转换为Entity SQL,它再次转换为任何SQL方言数据库使用(SQL Server的T-SQL)。

EF的优点和缺点是一个有争议的话题,因为大多数人并不特别喜欢EF,但我会尽量保持中立。

<强>赞成

  • 与LINQ to SQL(L2S)一起,LINQ to Entities(L2E)和EF是Microsoft提供的最佳数据访问API。尽管存在各种缺点,但在大多数情况下,它们都比传统的ADO.NET更好。
  • 虽然L2S更简单,但L2E已被标记为Microsoft数据访问API的未来,因此如果您希望保留主流Microsoft API组合,则应使用L2E。它看起来不像L2S会看到很多新的发展。
  • EF将在.NET 4中获得相当大的功能和灵活性

<强>缺点

  • 使用EF是 hard 。在架构更改方面它非常脆弱,当底层架构发生变化时更新它是一个婊子
  • EF生成的T-SQL非常糟糕(虽然这应该在.NET 4中有所改变)
  • 持久性无知(直到.NET 4)
  • 许多LINQ方法没有实现,因此API比看起来更有限。
  • 它并不像人们希望的那样灵活。

简而言之,如果您只能使用BCL中的内容,请使用它,或者,如果您使用的是.NET 4,请尝试一下;否则,有更好的替代品,以开源库的形式。

答案 1 :(得分:0)

Here are some pro's about ADO.NET。我还没发现任何消息。 编辑:以及更多关于ADO.NET的内容,包括缺点:Here

关于LINQ:没有人会强迫你使用LINQ(除了雇主),但它与ADO.NET结合起来肯定有好处。另见:Here

对于一堆链接感到抱歉,但这对C / P来说是很多文字。快乐阅读:)。