asp.net ef5 left join 的实现

本文介绍了使用EF5实现Left Join的具体方法,并通过实例展示了如何将表SYS_MODULE与SYS_ROLEMODULES进行连接查询,同时解释了查询结果中出现C1和C2字段的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在网上查找了很多的ef5实现left join的方法,很遗憾没有找到满意的结果,经过自己的研究终于发现了点眉目,所以分享一下



EF5: var x = ef.SYS_MODULE.GroupJoin(ef.SYS_ROLEMODULES, m => m.MKID, n => n.MKID, (w, c) => new { A = c, v = w });


说明:上面是用表SYS_MODULE left join 表 SYS_ROLEMODULES 用表SYS_MODULE.MKID 和 SYS_ROLEMODULES.MKID 关联

查询的结果放到标红的位置;但不知道为什么会自动产生C1,C2


x.ToString()的结果是:

SELECT "Project1"."MKID"  AS "MKID",
       "Project1"."C1"    AS "C1",
       "Project1"."MKMC"  AS "MKMC",
       "Project1"."C2"    AS "C2",
       "Project1"."JSID"  AS "JSID",
       "Project1"."MKID1" AS "MKID1"
  FROM (SELECT "Extent1"."MKID" AS "MKID",
               "Extent1"."MKMC" AS "MKMC",
               1 AS "C1",
               "Extent2"."JSID" AS "JSID",
               "Extent2"."MKID" AS "MKID1",
               CASE
                 WHEN ("Extent2"."JSID" IS NULL) THEN
                  NULL
                 ELSE
                  1
               END AS "C2"
          FROM "A1"."SYS_MODULE" "Extent1"
          LEFT OUTER JOIN "A1"."SYS_ROLEMODULES" "Extent2"
            ON ("Extent1"."MKID" = "Extent2"."MKID")
           AND ('1' = "Extent2"."MKID")) "Project1"
 ORDER BY "Project1"."MKID" ASC, "Project1"."C2" ASC


x.ToList()的结果是标红位置的集合;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值