下载此文档

架构3【ORM.doc


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
架构(3)【ORM————————————————————————————————作者:————————————————————————————————日期: 架构(3)【ORM现在成熟的ORM比比皆是,这里只介绍Dapper的使用(最起码我在使用它,已经运用到项目中,小伙伴们反馈还可以)。优点:1、开源、轻量、小巧、上手容易。2、支持的数据库还蛮多的,MySQL,SqlLite,Sqlserver,Oracle等一系列的数据库。3、Dapper原理通过Emit反射IDataReader的序列队列来快速的得到和产生对象。性能貌似很牛逼的样子缺点:作为一款ORM太过于轻量级了,根据对象自动生成sql的功能还是空白,需要自己来扩展,当然这也是优点,好声音的导师们经常说某人就是张白纸……因此针对Dapper已经有很多成熟的扩展项目了,、,DapperExtensions。我们这里介绍的是DapperExtensions。dapper-源码:https:///StackExchange/dapper-(更新频率快,项目包含了各种除了Dapper-Extensions的扩展项目)Dapper-Extensions源码:https:///tmsmith/Dapper-ExtensionsDapper-Extensions的优点:1、开源2、针对Dapper封装了常用的CRUD方法,有独立的查询语法。3、需要映射的实体类本身0配置,无需加特性什么的。是通过独立的映射类来处理,可以设置类映射到DB的别名,字段的别名等等。Dapper-Extensions的缺点:1、好几年没更新了2、不支持oracle(木有oracle的方言,已经搞定)3、不能同时支持多种数据库(已经搞定)4、部分代码有些bug(发现的都搞定了)下面先简单介绍一下Dapper的基本语法。,可以放到项目代码中直接编译,也可以直接引用DLL文件。Dapper对DB的操作依赖于Connection,为了支持多库,咱们用IDbConnectionconnusing(IDbConnectionconn=GetConnection()){conststringquery="select*fromXOorderbyiddesc";<XOEntity>(query,null);}下面是带参数的语法intxoID=666;//变量主键using(IDbConnectionconn=GetConnection()){conststringquery="select*fromXOwhereId=***@MyID";<XOEntity>(query,new{MyID=xoID});}各种方法都重载了事务的操作,一般的数据库操作都支持。但是每次执行都需要传递sql,而且每次都要使用Using,看着不爽啊,这……好吧下面简单介绍下使用Dapper-Extensions的基本语法(在Dapper-Extensions的基础上用了Repository模式,代码效果如下)。//实体类DemoEntityentity=newDemoEntity();//<DemoEntity>(entity);//<DemoEntity>(1);//<DemoEntity>(entity);//更新boolresult=<DemoEntity>(entity);//根据主键返回实体entity=<DemoEntity>(1);//<DemoEntity>(new{ID=1});//查询所有IEnumerable<DemoEntity>list=<DemoEntity>();IList<ISort>sort=newList<ISort>();(newSort{PRopertyName="ID",Ascending=false});//条件查询list=<DemoEntity>(new{ID=1,Name="123"},sort);//orm拼接条件查询IList<IPredicate>predList=newList<IPredicate>();predLi

架构3【ORM 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人jianjian401
  • 文件大小111 KB
  • 时间2019-11-20