EFCore 关联表查询_多表使用整理

一、EF Core 查询出关联表数据

EF Core 默认不支持查询中带出关联表数据,如果需要则使用Include() 声明加载

ctx.Categories
    .Include(c => c.Products)
    .Include(c => c.News);

二、EF Core 关联表条件筛选

场景案例举例子

1. Sql 语句场景 需求举例

---查询指定角色下的菜单
select * from Sys_Navigation
where NavID in(
select NavID from Sys_Role_Nav where RoleID=1
)

---查询拥有指定菜单的角色
select * from Sys_Role
where RoleID in (
select RoleID from Sys_Role_Nav where NavID=1
)

---查询拥有指定菜单的用户
select * from Sys_Employee where RoleID in (
select RoleID  from Sys_Role_Nav where NavID=1
)

2.EF core 对应场景举例 整理

static void Test1()
{

    //查询指定角色下的菜单     会员角色的菜单
    //查找菜单,从关联表中,含有roleid=1的菜单
    //roleid=1
    QLSingleContext _context = new QLSingleContext();
    var navList = _context.SysNavigations.Where(q => q.SysRoleNavs.Any(i => i.RoleId == 1))
         .ToList();
    foreach (var item in navList)
    {
        Console.WriteLine($"id:{item.NavId} name:{item.Name}");
    }
}

更多:

 EF Linq To Sql 常用查询整理_常用使用方式整理

EF null字段排序后置_Sql中Null字段排在后边

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值