此例子是使用LINQ2Dapper封装,效率优于EntityFramwork,而且支持.NetFramework和.NetCore框架,只依赖于Dapper
支持.net framework4.6.1及以上git
支持.net core2.0及以上github
Connection为链接对象,详情请见 [LINQ2Dapper]最完整Dapper To Linq框架(一)sql
为了给予用户更多选择,可使用LINQ和sql一块儿进行查询,来实现一些较为复杂的逻辑app
例如框架
Connection.QuerySet<users>().Where<users>(x => x.roleId > 0 && x.roleId < 10).Where("users.code=@code", new { code = "3" }).ToList();.net
Where<users>(x => x.roleId > 0 && x.roleId < 10)为linq部分,Where("code=@code", new { code = "3" })为sql部分,code
最终会拼接成对象
SELECT * FROM users WHERE roleId>0 AND roleId<10 AND code=3blog
Connection.QuerySet<users>().Where($@"roleId in(select roleId from role_Power where createDate<@createDate)", new
{
createDate = DateTime.Now
}).Where(x => x.code != "3").ToList();get
这是一个子查询条件的拼接
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
框架开源,能够加群下载源码