日期:2014-05-20 浏览次数:21105 次
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() 不是百分百会执行左连接的
主要要看 关系的配置 以及数据库那边 是否为空 外键