带有相关数据的where子句的Linq查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有相关数据的where子句的Linq查询相关的知识,希望对你有一定的参考价值。

我有一个使用两个SQL表(A和B)的数据上下文,这些表使用以下代码查询:

                    var query = from b in _ctx.A
                                .Where(b => b.Flag == true).Include(c => c.B)
                                select b;

Flag列位于表A中。我想向查询中添加一个附加的where子句,该子句检查表B中名为Qty的列的值> 10。

我尝试了以下代码,但出现错误:

                    var query = from b in _ctx.A
                                .Where(b => b.Flag == true)
                                .Include(c => c.B.Where(i => i.Qty >= 10))
                                select b;

错误:包含路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用“选择”运算符作为集合导航属性。参数名称:路径

我发现此参考:The Include path expression must refer to a navigation property defined on the type.in eager loading

但是我不明白如何在查询中使用选择。

答案
包含路径仅在此处加载属性,如果由于其他原因未加载该属性。

以上是关于带有相关数据的where子句的Linq查询的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 linq lambda 扩展方法执行带有 where 子句的左外连接

实体框架 Linq 查询:.Where 链 vs &&

C#图解教程 第十九章 LINQ

带有 WHERE 子句的 SQL INNER JOIN 到 LINQ 格式

Linq-to-Entities:带有 WHERE 子句和投影的 LEFT OUTER JOIN

带有可选 Where 子句和 Sql Server CE 的 Linq