[LINQ2Dapper]最完整Dapper To Linq框架(四)---Linq和SQL並行使用

此例子是使用LINQ2Dapper封裝,效率優於EntityFramwork,而且支持.NetFramework和.NetCore框架,只依賴於Dapper
支持.net framework4.6.1及以上git

支持.net core2.0及以上github

1.同時使用LINQ和SQL進行查詢

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

 

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();get

這是一個子查詢條件的拼接

 

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

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

若有問題也能夠加QQ羣討論:

技術羣 710217654

框架開源,能夠加羣下載源碼

相關文章
相關標籤/搜索