c# - 在.Net 4.0中,数据访问应用程序 block 仍然是实现数据连接的方式吗?

标签 c# data-access-layer

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

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

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

最佳答案

使用ORMs如今,数据访问应用程序 block 已被视为最佳实践,但随着其他更易于使用的库的出现并在 .NET 世界中占据主导地位,数据访问应用程序 block 已不再受欢迎。

其中包括 nHibernate、LINQ to SQL、Entity Framework,还有大型的、功能齐全的库(有些库比其他库功能更齐全)。

直接使用 ADO.Net 的人是那些想要对 SQL 进行更多控制的人(ORM 总是可以实现,但在不通过习惯用法访问数据库时往往相当麻烦)。

一个轻量级 ORM 示例是 Dapper ,这是 ADO.Net 上非常薄的一层。

关于c# - 在.Net 4.0中,数据访问应用程序 block 仍然是实现数据连接的方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719663/

相关文章:

c# - 以编程方式为 WCF (NetTcpBinding) 指定自定义授权

javascript - 如何在 ASP.NET 中从前端 Javascript 函数调用后端 C# 函数

c# - 使用 .Net WebRequest 工厂

c# - 业务逻辑或 DAL 返回类型的 IEnumerable 与 IQueryable

asp.net - ASP.Net 中 UI 层的 List<> 比 DataSet 更好吗?

C#将一个方法作为参数传递给另一个方法

c# - asp.net 异步执行任务并更新 UI

java - 为单个数据源实现 DAO

performance - LINQ2SQL 性能对比自定义 DAL 对比 NHibernate

LINQ - LINQ 通常应该属于哪一层,DAL?