linq to entity 左聯接 右鏈接 以及內鏈接寫法的區別(轉)

linq to entity 左鏈接 右鏈接 以及內鏈接寫法的區別  還有就是用lambda表達式怎麼寫,那個效法效率高些?sql

 

[解決辦法]
左連右連仍是內連這個其實你不須要關心。只須要根據實體的映射關係寫查詢,框架會自動幫你生成的。
至於linq查詢語法與擴展方法的效率,應該是同樣的,好比:數據庫

C# code
 var users=(from u in db.Users where u.UserRoleId==1 select u) .ToList(); var users2=db.Users.Where(u=>u.UserRoleId==1).ToList();
[解決辦法]
inner join:
 var =from x in db.T1
join y in db.T2
on x.yId equals y.Id
select x;

left join:

 var =from x in db.T1
join y in db.T2
on x.yId equals y.Id into temp
from y in temp.DefalutIfEmpty()
select new{x.Id,Name=y==null?"":y.Name};

right join 原理同 left join

至於效率,lamda表達式同標準表達式
[解決辦法]
linq表達式就是lambda表達式,對於數據庫來講,都是轉化爲sql在數據庫端運行的,因此效率同樣。
[解決辦法]請看下第六條還有 樓上的朋友 LINQ TO EF 用 from x in temp.DefalutIfEmpty() 不是百分百會執行左鏈接的主要要看 關係的配置 以及數據庫那邊 是否爲空 外鍵
相關文章
相關標籤/搜索