条件包含在哪里,怎么样?

时间:2015-05-26 22:01:48

标签: linq repository dbcontext objectcontext

以下代码无效。我得到异常" Include路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。" 我做错了什么

    public static MyEntity GetData(this IQueryable<MyEntity> source, int id, int year)
    {
        return source.Where(x => x.ID == id)
            .Include(x => x.Childrens1)
            .Include(x => x.Childrens2.where(y => y.Year == year))
            .FirstOrDefault();
    }

1 个答案:

答案 0 :(得分:0)

包含表达式不支持的位置,您只能使用select,甚至嵌套。移动到包含

的地方
public static MyEntity GetData(this IQueryable<MyEntity> source, int id, int year)
{
    return source
        .Include(x => x.Childrens1)
        .Include(x => x.Childrens2)
        .Where(x => x.ID == id && x.Childrens2.Any(y => y.Year == year))
        .FirstOrDefault();
}

现在,您还可以统一FirstOrDefault

中的位置或过滤器