[英]EFCore Linq Left Outer Join
我浏览了数百个示例,但仍然找不到我想要的东西。
public class CA
{
public int Id {get;set;}
public List<SignOff> SignOffs {get;set}
}
public class SignOff
{
public int Id {get;set;}
public int CAId {get;set;}
public bool IsCurrentQtr {get;set;}
}
我目前有一个搜索功能,可以返回IQueryable<CA> qry
。 现在,我需要使用IQueryable<CA>
并在IsCurrentQtr == true
情况下IsCurrentQtr == true
所有SignOffs的联接,但是然后我想在SignOffs == null || SignOffs.Count == 0
选择所有CA。 SignOffs == null || SignOffs.Count == 0
。
它需要使用方法语法。 此外,请记住,CA表中实际上有大约50列数据与其他15个FK关系,而签核表中有大约70列数据,并且它使用的是SQL Server 2017。
有人可以帮我写这个linq查询吗?
编辑1:仅供参考,这也让我感到困惑,但这就是向我解释的方式。 在试图更好地解释这一点时,我想到了一种新的陈述方式。 我需要选择在IsCurrentQtr为true的情况下没有签收记录的所有CA。
我需要选择在IsCurrentQtr为true的情况下没有签收记录的所有CA。
然后,您的查询应如下所示:
var caList = db.CAs.Where(ca => ca.SignOffs.All(sf => sf.IsCurrentQtr == false)).ToList();
// or
var caList = db.CAs.Where(ca => ca.SignOffs.Count(sf => sf.IsCurrentQtr) == 0).ToList();
根据您的编辑,您想要这个结果。
var result = cs.Where(x => !x.Any(r => r.IsCurrentQtr));
这将在IsCurrentQtr == true的情况下查找所有没有签署记录的CA。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.