【文件属性】:
文件名称:StackExchange开源.Net ORM框架 Dapper.NET.zip
文件大小:258KB
文件格式:NET
更新时间:2022-08-07 22:56:34
开源项目
Dapper .NET 是 .NET 下一个简单的对象关系映射库 (ORM)。它支持SQLite, SQL CE, Firebird, Oracle, MySQL, PostgreSQL and SQL Server等数据库。
优点:
使用Dapper可以自动进行对象映射!
轻量级,单文件。
支持多数据库。
Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。
Dapper.Net的示例代码:
public class Dog
{
public int? Age { get; set; }
public Guid Id { get; set; }
public string Name { get; set; }
public float? Weight { get; set; }
public int IgnoredProperty { get { return 1; } }
}
var guid = Guid.NewGuid();
var dog = connection.Query("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });
dog.Count()
.IsEqualTo(1);
dog.First().Age
.IsNull();
dog.First().Id
.IsEqualTo(guid);
下面是Dapper .NET与其他几种数据访问组件的性能对比,从比较结果看Dapper .NET表现优异。
Performance of SELECT mapping over 500 iterations - POCO serialization
Method
Duration
Remarks
Hand coded (using a SqlDataReader)
47ms
Can be faster
Dapper ExecuteMapperQuery
49ms
ServiceStack.OrmLite (QueryById)
50ms
PetaPoco
52ms
BLToolkit
80ms
SubSonic CodingHorror
107ms
NHibernate SQL
104ms
Linq 2 SQL ExecuteQuery
181ms
Entity framework ExecuteStoreQuery
631ms
Performance of SELECT mapping over 500 iterations - dynamic serialization
Method
Duration
Remarks
Dapper ExecuteMapperQuery (dynamic)
48ms
Massive
52ms
Simple.Data
95ms
Performance of SELECT mapping over 500 iterations - typical usage
Method
Duration
Remarks
Linq 2 SQL CompiledQuery
81ms
Not super typical involves complex code
NHibernate HQL
118ms
Linq 2 SQL
559ms
Entity framework
859ms
SubSonic ActiveRecord.SingleOrDefault
github地址:https://github.com/StackExchange/dapper-dot-net
入门教程:http://www.cnblogs.com/Sinte-Beuve/p/4231053.html
Dapper已经有很多成熟的扩展项目了,Dapper.Rainbow、Dapper.Contrib,DapperExtensions
其中Dapper-Extensions非常不错,github地址:https://github.com/tmsmith/Dapper-Extensions
Dapper-Extensions的优点:
1、开源
2、针对Dapper封装了常用的CRUD方法,有独立的查询语法。
3、需要映射的实体类本身0配置,无需加特性什么的。是通过独立的映射类来处理,可以设置类映射到DB的别名,字段的别名等等。
Dapper-Extensions的缺点:
1、好几年没更新了
2、不支持oracle(木有oracle的方言,已经搞定)
3、不能同时支持多种数据库(已经搞定)
4、部分代码有些bug(发现的都搞定了)
Dapper-Extensions入门教程可参考:
http://www.cnblogs.com/hy59005271/p/4759623.html
标签:orm