我已经通过数以百计的例子看,仍然不能完全找到我要找的。
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
但我想去的地方SignOffs == null || SignOffs.Count == 0
选择所有CA。
它需要使用的方法的语法。另外,请记住,实际上有大约50在CA表与其他15对FK关系数据的列和签收表有数据的70列,它使用SQL Server 2017年。
有人可以帮我写这个LINQ查询?
编辑1:仅供参考,这是令人费解给我太多,但,这是它给我解释的方式。虽然试图解释这更好,我认为声明是一种新的方式。我需要选择没有签收记录,其中IsCurrentQtr是真正的所有CA。
我需要选择没有签收记录,其中IsCurrentQtr是真正的所有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));
这会发现,没有关闭录制登录哪里是当前QTR == true的CA。