条件包括EF6解决方法

时间:2016-06-09 06:28:55

标签: c# entity-framework linq

假设我有一个实体,就像这样:

Public classs Blog{
    public int x,
    public bool y,
    public virtual ICollection<someType> someTypes
    public virtual ICollection<Post> Posts
}

现在我要触发以下查询

repository.findBy(
    blogs => blogs.y, 
    blogs => blogs.someTypes, 
    blogs => blogs.Posts.where(someVar => someVar.someField == someValue)
).select()

someField是Post的属性。

其中findBy是:

IQueryable<T> FindBy(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes);

它出现以下错误:

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

1 个答案:

答案 0 :(得分:0)

尝试删除此 $('#TestGrid').datagrid("unselectAll");

  

这不是导航属性,您只能在include语句中包含Navigation属性。

默认情况下会填充列,除非您使用投影。

blogs => blogs.y

注意* EF团队尚未实施条件包含
这仍是EF团队的工作项目,您可以投票here

请注意,目前无法过滤加载了哪些相关实体。包含将始终引入所有相关实体。 Msdn Reference