qq_33340625
2019-06-11 18:05
采纳率: 100%
浏览 606

.NET MVC5 Linq内联时,当右表没有数据,左表也不显示了

大佬们好,小弟初学.NET,需要用到Linq内联
显示管理员列表时,通过RoleId显示对应的分组名称
现在问题是当RoleId在分组表中找不到时,管理员也不显示了
麻烦大佬们帮小弟看看是哪里的问题,折腾一天了,先谢谢了
Linq语句如下:
var dt = (from a in db.evset_admin
join r in db.evset_role on a.roleId equals r.id into ar
from r in ar.DefaultIfEmpty()
select new
{
id = a.id,
adminName = a.adminName,
roleName = r != null ?r.ts_name : "--",
explain = a.Explain
});

evset_admin //管理员表
数据1:sysadmin  RoleId:0
数据2:admin  RoleId:2

evset_role //分组表
数据1:系统管理员 ID:2

图片说明

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2019-06-11 18:44
    已采纳

    本来就是这样,Inner Join就是两边有数据才连接
    你需要的是 Left Outer Join

    打赏 评论
  • qq_33340625 2019-06-11 18:32

    路过的大佬们帮顶下,谢谢了

    打赏 评论
  • 建议你先看看 left join inner join right join 的区别。然后你的sql就知道怎么写了。 inner join是a,b表都有数据才链接显示。 left join 是a表有数据,b表没数据,那么显示的就是a表的数据,b表的字段数据就为null。 right join 是 a表没有数据,b表有数据,那么以b表为主显示,a表字段为null

    打赏 评论

相关推荐 更多相似问题