使用linq中的条件包括

时间:2016-12-06 12:41:33

标签: c# entity-framework linq exception

我如何使用include中的where条件? ProgressItems是ICollection<>宾语。我想用过滤的项目获得整个Goal对象。我该如何解决?

        return _dbContext.Goals
            .Include(p => p.GoalExpectation)
            .Include(p => p.ProgressItems.Where(r => r.Value > 100))
            .SingleOrDefault(p => p.Id == id);

我得到了这样的例外

  

Include路径表达式必须引用导航属性   在类型上定义。使用虚线路径进行参考导航   属性和集合导航的Select运算符   属性。参数名称:路径

2 个答案:

答案 0 :(得分:1)

include语句需要导航属性(如错误所示)。从语法上来说,你做的似乎是正确的,但它似乎是错误的,因为getmypid()不会返回导航属性。

答案 1 :(得分:0)

您无法通过使用可以使用过滤器获取所包含项目的查询并将其分配给您的Goal对象来限制它。