我所关注的开源的 C# ORM/持久层 框架

nd | | 访问(1107)

  ORM框架 Dapper .NET

  Dapper是一个轻型的开源ORM类,代码就一个SqlMapper.cs文件,编译后就40多K。Dapper支持Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等一系列的数据库,当然如果你知道原理也可以让它支持Mongo db。

  Dapper的r支持多表并联的对象。支持一对多 多对多的关系。并且没侵入性,想用就用,不想用就不用。无XML无属性。代码以前怎么写现在还怎么写。

  Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。(比采用常规的反射)性能提升了很多;

  Dapper支持net2.0,3.0,3.5,4.0。不过就是要配置下。

  语法十分简单。并且无须迁就数据库的设计。

  Dapper执行效率:

  30W条数据,取其中的一个对象,和第一页前15条数据,耗时0.0906879秒。这个速度超过Datable。

  .NET对象关系映射器 PetaPoco

  PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器(ORM, Object Relational Mapper)。与那些功能完备的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非丰富的功能。使用PetaPoco只需要引入一个C#文件,可以使用强类型的 POCO(Plain Old CLR Object),并支持使用T4模板生成的类等等。

  PetaPoco最让人感兴趣的功能包括:

  可与SQL Server、SQL Server CE、MySQL、PostgreSQL以及Oracle数据库协同工作。

  包含针对Insert/Delete/Update/Save以及IsNew的多个辅助方法。

  支持简单事务

  对于翻页请求会自动计算总记录数,并获取特定分页。

  支持参数替换,能够从对象属性中抓取命名参数(named parameters)

  包括一个消耗资源很少的SQL Builder类

  部分记录更新

  包括T4 Templates,可以用于基于数据库结构生成POCO类。

  在PetaPoco网站上有针对所有这些功能的详细说明及示例。

  在性能方面,PetaPoco仅次于Dapper,速度只稍逊于手工编码的数据访问层(DAL, Data Access Layer)。

  还有一些对初学者会有帮助的教程,它们是位于官网上的系列博文以及一些独立博文教程。此外,由于PetaPoco是开源项目,因此添加条件来处理如空间数据等特定情况会很容易。

  最近,随着许多开源项目的发布,微型ORM已开始成为一种流行趋势。其他一些众所周知的适用于.NET的项目有Dapper和Massive。那些微型ORM相对于功能完备的ORM而言,会更简单、更高效,微型ORM通常要求开发人员手动编写SQL语句,而非完全动态生成。它们同样不需要冗长的映射文件,因为对于维护和调试而言,那些映射文件只会让过程变得单调乏味。

  .NET的ORM框架 SqlSmart

  SqlSmart是一个DotNet类库,它可以充分利用 codeinsight ,面向对象技术来帮助程序员更快的,更准确到编写sql,这样的sql以容易重构的。 听起来陌生?这是想法我之前并没有在其他ORM技术,比如 Hibernate,ROR内这样大名鼎鼎到类库中见过(如果你发现这并不确切,请给我打个招呼)。 不过它不像是听起来那么复杂,实际上,它的主要特点就是简单。我会继续详细的说明,包括必要到例子。 鉴于简单,也不需要特定到语言特色的支持,因此,在其他语言中一样可以实现。 不过,我发现C#的模板技术,和RTTI 让代码编写更加容易,并且VS到code insight技术让SqlSmart工作良好。 实际上我的实现正是基于C#来做的。

  SqlSmart和Hibernite有类似之处,都是采用类表达数据库,不同的是,掌握后者需要一本书和很多的实践,掌握前者你需要的只是看看这篇文 档,然后下载一份去尝试。