• 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就可以,非常方便!

  • 相关阅读:
    Linux内存运维操作及常用命令
    Quartz定时任务
    Spark DataSource Option 参数
    Hadoop HDFS命令
    Java,Scala:JDBCUtil,MySqlUtil,PhoenixJDBC
    RedisUtil,Redis工具类
    通过脚本本地下载Jar包
    Redis五种数据类型-设置key的过期时间
    spark整合Phoenix相关案例
    Spark Dataset DataFrame空值null,NaN判断和处理
  • 原文地址:https://www.cnblogs.com/liuchangxu/p/13132078.html
Copyright © 2020-2023  润新知