.NET平台的常见O/R Mapping框架简介
O/R Mapping是指通过操作对象的方式来读写数据库,比直接使用SQL方便太多了。在.NET强大的平台支持下,O/R Mapping框架也遍地开花。
NHibernate。开源项目。继承自O/R Mapping的开山大作Hibernate(Java平台)。发展时间长,比较成熟。Hibernate系列的一个问题是配置文件比较复杂。LINQ to NHibernate 1.0也在2009年7月发布,NHibernate终于也能使用LINQ了。
Castle项目的ActiveRecord。开源项目。听名字就知道,模仿Ruby的ActiveRecord。底层使用NHibernate,充分利用了.NET的Attribute和Generic,隐藏了复杂的配置文件。实现相当完整。可惜在LINQ to SQL、Entity Framework出世后,日渐式微。
LINQ to SQL。微软为LINQ和SQL Server定制的方案,与LINQ同步推出,集成在.NET 3.5中。最初是由SQL Server的开发团队开发的。与Visual Studio 2008高度集成,直接鼠标拖放,全自动的代码生成,使用方便。只能用于SQL Server是最大的限制。由于LINQ to SQL和Entity Framework是一个开发团队维护,而其负责人已经在blog上表明以后主攻方向是Entity Framework,所以LINQ to SQL的前途渺茫。
ADO.NET Entity Framework。微软在2004年提出ObjectSpace,最终发展成为Entity Framework,集成在.NET Framework 3.5 SP1和Visual Studio 2008 SP1中。作为微软主推的O/R Mapping框架,现行版本为1.0。相比其他框架,非常关注性能,这也是众多O/R Mapping框架亟待解决的问题。推荐使用。
NHibernate。开源项目。继承自O/R Mapping的开山大作Hibernate(Java平台)。发展时间长,比较成熟。Hibernate系列的一个问题是配置文件比较复杂。LINQ to NHibernate 1.0也在2009年7月发布,NHibernate终于也能使用LINQ了。
Castle项目的ActiveRecord。开源项目。听名字就知道,模仿Ruby的ActiveRecord。底层使用NHibernate,充分利用了.NET的Attribute和Generic,隐藏了复杂的配置文件。实现相当完整。可惜在LINQ to SQL、Entity Framework出世后,日渐式微。
LINQ to SQL。微软为LINQ和SQL Server定制的方案,与LINQ同步推出,集成在.NET 3.5中。最初是由SQL Server的开发团队开发的。与Visual Studio 2008高度集成,直接鼠标拖放,全自动的代码生成,使用方便。只能用于SQL Server是最大的限制。由于LINQ to SQL和Entity Framework是一个开发团队维护,而其负责人已经在blog上表明以后主攻方向是Entity Framework,所以LINQ to SQL的前途渺茫。
ADO.NET Entity Framework。微软在2004年提出ObjectSpace,最终发展成为Entity Framework,集成在.NET Framework 3.5 SP1和Visual Studio 2008 SP1中。作为微软主推的O/R Mapping框架,现行版本为1.0。相比其他框架,非常关注性能,这也是众多O/R Mapping框架亟待解决的问题。推荐使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)