【发布时间】:2019-02-07 17:13:33
【问题描述】:
我已经浏览了数百个示例,但仍然无法找到我要查找的内容。
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 但我想选择 SignOffs == null || SignOffs.Count == 0 的所有 CA。
它需要使用方法语法。另外,请记住,CA 表中实际上有大约 50 列数据以及 15 个其他 FK 关系,而签核表有大约 70 列数据,并且它使用的是 SQL Server 2017。
有人可以帮我写这个 linq 查询吗?
编辑 1: 仅供参考,这也让我感到困惑,但这就是向我解释的方式。在试图更好地解释这一点时,我想到了一种新的方式来说明它。我需要选择所有没有 IsCurrentQtr 为 true 的签核记录的 CA。
【问题讨论】:
-
now need to use that IQueryable<CA> and left join all SignOffs where IsCurrentQtr == true but then I want to select all CA where SignOffs == null || SignOffs.Count == 0.你的要求让我很困惑!你能进一步解释一下吗? -
@TanvirArjel - 我对问题的编辑有帮助吗?
-
EF Core 假设让你的生活更轻松,如果它相反 - EF 提供运行普通 sql 查询的可能性;)
-
@Ben 请让我明白一件事。假设一个 CA 有两个 SignOffs,其中一个 SignOffs 是 IsCurrentQtr == true,另一个是 false,那么这个 CA 会被忽略吗?
-
@TanvirArjel - 在这种情况下,我不希望 CA 返回,因为它具有 CurrentQtr SignOff。我只想要没有 currentQtr 签核的 CA。
标签: c# sql-server linq entity-framework-core