.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框架亟待解决的问题。推荐使用。