ORM框架--Dapper

一、什么是Dapper?

Dapper是一款轻量级Orm框架,它是属于半自动的,它和Entity Framework和NHibernate不同,它只有一个单文件,没有很复杂的配置,如果你喜欢原生Sql语句,而且又是喜欢Orm框架,那么Dapper对于你来说是再适合不过了。

二、Dapper优点
我也是刚开始学习Dapper,可能也就还没真正去体验到带来的好。所以我也是抱着学习的态度,去参考一些大佬给它总结的优点:

1、轻量级、单文件。
2、支持多数据,而且性能优越。

3、Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。

三、演示

我们需要在我们项目中添加Dapper  Nuget包,然后点击安装就可以了。

 1 public class BaseRepository<T> : IBaseRepository<T> where T : class
 2     {
 3         public bool Delete(string id)
 4         {
 5             var sql = $"delete from [{typeof(T).Name}] where Id=@id";
 6             return DapperHelper.Delete(sql, id);
 7         }
 8 
 9         public T GetModel(string id)
10         {
11             var sql = $"select * from [{typeof(T).Name}] where Id=@id";
12 
13             return DapperHelper.GetModel<T>(sql, new { id = id });
14         }
15 
16         public List<T> GetModelList()
17         {
18             var sql = $"select * from [{typeof(T).Name}] ";
19 
20             return DapperHelper.GetModelList<T>(sql, null);
21         }
22 
23     }

看完写法基本跟传统sql语句没有区别,非常适合喜欢写sql语句。

如果感觉这种写法不适合可以在引用DapperExtensions   Nuget包

 1 public class BaseRepository<T> : IBaseRepository<T> where T : class
 2     {
 3         public bool Insert(T model)
 4         {
 5             return DapperHelper.Insert(model);
 6         }
 7 
 8         public T Get(object id)
 9         {
10             return DapperHelper.Get<T>(id);
11         }
12 
13         public List<T> GetList(object para, List<ISort> sort)
14         {
15             return DapperHelper.GetList<T>(para, sort);
16         }
17 
18 
19     }

这种写法直接传实体Model就可以,非常方便!

原文地址:https://www.cnblogs.com/liuchangxu/p/13132078.html