【发布时间】:2011-07-17 01:52:38
【问题描述】:
在 .net 中学习数据访问的最佳方法是什么?实体框架似乎是新的“它”事物,但我还有哪些其他选择?
谢谢,
罗伯特
【问题讨论】:
标签: .net data-access
在 .net 中学习数据访问的最佳方法是什么?实体框架似乎是新的“它”事物,但我还有哪些其他选择?
谢谢,
罗伯特
【问题讨论】:
标签: .net data-access
您的起点是 ADO.NET,文档位于:http://msdn.microsoft.com/en-us/library/e80y5yhx(v=vs.80).aspx。
基于 ADO.NET 的两个最新 Microsoft 库是 LINQ to SQL 和 Entity Framework。它们由 Microsoft 维护。
NHibernate 是一个非常常用且强烈推荐的开源 ORM 和持久化框架。文档和资源可从以下地址获得:http://nhforge.org/。
SubSonic 是一个“超高保真蝙蝠侠实用腰带”,它可以提升您的数据访问(在 3.0 中使用 Linq),提供一些急需的实用功能,并且通常可以加快您的速度开发周期”。它是开源的,GitHub 页面位于https://github.com/subsonic/SubSonic-3.0。
还有许多其他 ORM,但这些是最常用的开源关系数据库解决方案。 Wikipedia 在http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#.NET 上有一个相当广泛的 .NET ORM 软件列表。
ADO.NET 包括 .NET Framework 中数据访问背后的基本对象。 LINQ to SQL 可能是最容易学习和使用的 ORM,但如果您了解底层发生的事情,它总是会更容易。 Entity Framework 与 LINQ to SQL 类似,但包含更多功能,并且旨在采用更受域驱动的方法,而 LINQ to SQL 更多的是一种 Active Record 模式。
【讨论】:
我最喜欢的是Massive,这是一个使用 ExpandoObject 类和 SQL 的小型轻量级数据库抽象。
“一个会永远爱你的小而快乐的数据访问工具”
【讨论】:
我个人喜欢Dapper.NET。这是一个非常轻量级的 ORM(主要处理映射类型和从数据库动态填充类)。它也是 Stack Overflow 开发堆栈的一部分。
【讨论】: