博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LINQ2Dapper]最完整Dapper To Linq框架(四)---Linq和SQL并行使用
阅读量:7053 次
发布时间:2019-06-28

本文共 1030 字,大约阅读时间需要 3 分钟。

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

支持.net framework4.6.1及以上

支持.net core2.0及以上

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

Connection为连接对象,详情请见 

为了给予用户更多选择,可以使用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.连表时注意

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上下载:

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

技术群 710217654

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

转载于:https://www.cnblogs.com/kogel/p/11077940.html

你可能感兴趣的文章
springMVC参数的获取区别
查看>>
win7电脑数字键盘失灵怎么办
查看>>
java及java web学习笔记
查看>>
SpringMVC+Spring+hibernate整合及分页
查看>>
OpenAI教程
查看>>
LeetCode:459. Repeated Substring Pattern
查看>>
Database Resource website
查看>>
牛客寒假6-E.海啸
查看>>
linq 读取xml
查看>>
const 总结
查看>>
@RestController注解下返回到jsp视图页面
查看>>
搜索框请输入关键字 onfocus 和 onblur
查看>>
随手记:IDAPro蛮强大
查看>>
maven的下载以及安装
查看>>
数组排序
查看>>
前端性能优化-----转发的
查看>>
CentOS 7 开放防火墙端口 命令
查看>>
深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
查看>>
HDU 1181 变形课 【DFS】
查看>>
MySQL事务
查看>>