C# 在.NET4.0中,数据访问应用程序块仍然是实现数据连接的方式吗?

C# 在.NET4.0中,数据访问应用程序块仍然是实现数据连接的方式吗?,c#,data-access-layer,C#,Data Access Layer,由于我的工作需要,我已经在2.0中呆了一段时间,现在我正在努力跟上最新的.net框架。我正在开始构建一个Mvc应用程序,我想知道数据访问应用程序块(SqlHelper)是否仍然是编写数据层的一种可接受的方法 我知道关于EF有很多争论,包括它的速度性能、延迟加载以及将数据库与应用程序分开的问题。所以我现在不想去那里 但是我看到了很多只使用ADO.Net和DataAdapter的代码,我想知道在没有帮助的框架的情况下是否会回到ADO.Net。如果这是正确的,那么我的问题是为什么?不使用某种类型的助手

由于我的工作需要,我已经在2.0中呆了一段时间,现在我正在努力跟上最新的.net框架。我正在开始构建一个Mvc应用程序,我想知道数据访问应用程序块(SqlHelper)是否仍然是编写数据层的一种可接受的方法

我知道关于EF有很多争论,包括它的速度性能、延迟加载以及将数据库与应用程序分开的问题。所以我现在不想去那里

但是我看到了很多只使用ADO.Net和DataAdapter的代码,我想知道在没有帮助的框架的情况下是否会回到ADO.Net。如果这是正确的,那么我的问题是为什么?不使用某种类型的助手类/框架进行数据访问似乎是一种倒退。

使用被视为当今的最佳实践,数据访问应用程序块已不再受欢迎,因为其他更易于使用的库已经存在并在.NET世界中占据重要地位

其中包括nHibernate、linqtosql、entityframework,以提及大型的、功能齐全的库(有些库比其他库功能齐全)

直接使用ADO.Net的人希望对SQL的控制比使用ADO.Net的人更多(使用ORMs总是可能的,但是当涉及到访问数据库而不是通过其习惯用法时,他们往往会变得相当麻烦)


一个例子是轻量级ORM,它是ADO.Net上的一个非常薄的层。

我把4.0标记放在那里,因为这个问题是针对4.0框架的,实际上不是。例如,这也是Java程序员将面临的一个一般性问题(使用额外的框架或内置Java包)。