目录

此例子是使用LINQ2Dapper封装,效率优于EntityFramwork,并且支持.NetFramework和.NetCore框架,只依赖于Dapper
支持.net framework4.6.1及以上

支持.net core2.0及以上

1.同时使用LINQ和SQL进行查询

Connection为连接对象,详情请见 [LINQ2Dapper]最完整Dapper To Linq框架(一)

为了给予用户更多选择,可以使用LINQ和sql一起进行查询,来实现一些较为复杂的逻辑

例如

Connection.QuerySet<users>()
.Where<users>(x => x.roleId > 0 && x.roleId < 10)
.Where("users.code=@code", new { code = "3" })
.ToList();

Where<users>(x => x.roleId > 0 && x.roleId < 10)为linq部分,Where("code=@code", new { code = "3" })为sql部分,

最终会拼接成

SELECT * FROM users WHERE roleId>0 AND roleId<10 AND code=3

  

2.复杂的SQL也可支持

Connection.QuerySet<users>()
.Where($@"roleId in(select roleId from role_Power where createDate<@createDate)",
new
{
createDate = DateTime.Now
}).Where(x => x.code != "3")
.ToList();  

这是一个子查询条件的拼接

3.连表也支持SQL

默认SQL连表不会查询连表的字段

var users = Connection.QuerySet<users>()
.Join("LEFT JOIN project_Role ON users.roleId=project_Role.id")
.Get<dynamic>();

如果想获取连表的字段需要指明实体类

var users = Connection.QuerySet<users>()
.Join<project_Role>("LEFT JOIN project_Role ON users.roleId=project_Role.id")
.Get<dynamic>();

4.连表时注意

Connection.QuerySet<users>()
.Join<users, project_Role>(x => x.roleId, y => y.id)
.Where("project_Role.Id>@Id", new { Id = 1 })
.ToList();

连表时需要加上表前缀,以免字段重名冲突

例如project_Role.Id ,project_Role为表名

完整Demo可以去Github上下载:

https://github.com/a935368322/Kogel.Dapper.Test

如有问题也可以加QQ群讨论:

技术群 710217654

框架开源,可以加群下载源码

最新文章

  1. db2存储过程
  2. BOM和DOM(精简版)
  3. RESTClient - firefox插件
  4. HDOJ 1312 DFS&amp;BFS
  5. linux安装svn服务器(yum方式)
  6. linux 远程自动登录脚本 (注test.exp)
  7. Python中字符串的方法及注释
  8. 领域模型中分散的事务如何集中统一处理(C#解决方案)
  9. CodeForces 616B Dinner with Emma
  10. hdu5558 后缀数组
  11. Qt与FFmpeg联合开发指南(二)——解码(2):封装和界面设计
  12. OSGI嵌入jetty应用服务器
  13. python字符串的常用方法
  14. linux下有名管道进程通信
  15. python 字典不区分大小写工具类
  16. 如何将div中的内容设置为空同时还要保留div本身
  17. Linux使用笔记
  18. Javascript中的bind详解
  19. bzoj 4303 数列
  20. resultType没有指定就会报错

热门文章

  1. LeetCode_225-Implement Stack using Queues
  2. drf源码save以及response
  3. Java学习笔记之基础语法(数组)
  4. powerCat进行常规tcp端口转发
  5. DevSecOps 笔记
  6. windows进程中的内存结构(缓冲溢出原理)
  7. PHP array_reverse
  8. 动画讲解TCP
  9. 生成函数(TBC)
  10. 一次看懂 Https 证书认证