首页 新闻 赞助 找找看

Linq to sql left join 问题 求指点

0
悬赏园豆:5 [已关闭问题] 关闭于 2015-12-21 13:48

Linq :

from a in SysUserRoles 

join b in SysUserInfo.DefaultIfEmpty()

on a.UserId equals b.UserId

select a 

生成的Sql:

SELECT [t0].[ID], [t0].[UserId], [t0].[RoleId], [t0].[CreateDate], [t0].[CreateUser], [t0].[CreateIp]
FROM [SysUserRole] AS [t0]
INNER JOIN ((
SELECT NULL AS [EMPTY]
) AS [t1]
LEFT OUTER JOIN [SysUserInfo] AS [t2] ON 1=1 ) ON [t0].[UserId] = [t2].[UserId]

为什么SysUserInfo和自己Left join 而不是直接SysUserRole Left Join呢

键盘上的考拉的主页 键盘上的考拉 | 菜鸟二级 | 园豆:207
提问于:2015-12-15 19:48
< >
分享
所有回答(1)
0

inner join(等值连接) 只返回两个表中联结字段相等的行,left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 

搁忆 | 园豆:612 (小虾三级) | 2015-12-16 10:36

嗯是啊,为什么linq生成的语句,SysUserInfo和自己左连接,没有和SysUserRole左连接

支持(0) 反对(0) 键盘上的考拉 | 园豆:207 (菜鸟二级) | 2015-12-16 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册