2015-12-02 46 views
1

我试图从实体框架7中获取我的MS Server数据库的实体列表,其中实体具有嵌套对象,并且该对象也具有嵌套对象,其中I检查一个条件。我的代码如下所示:InvalidTaskException尝试从数据库中获取实体列表

List<MyObj> MyObjList = DbContext.MyObj.Include(x => x.MyNestedObj).ThenInclude(x => x.MyNestedNestedObj).Where(x=>x.MyNestedObj.MyNestedNestedObj.ID==SomeValue).ToList(); 

当我尝试这样我得到:

InvalidTaskException无法从投 System.Linq.Expressions.FieldExpression到 System.Linq.Expressions.ParameterExpression

我在我的项目中多次做过这种事情,我只在嵌套对象的层次上工作,在那里工作正常。它也可以当我第一次让大家都出去了,然后用这样的条件进行排序:

List<MyObj> MyObjList = DbContext.MyObj.Include(x => x.MyNestedObj).ThenInclude(x => x.MyNestedNestedObj).toList(); 
List<MyObj> MyObjList2=MyObjList. Where(x=>x.MyNestedObj.MyNestedNestedObj.ID==SomeValue).ToList(); 

但我不希望每次我这样做的时候,我想去做一个让整个表像其他地方一样。

回答

0

我想你应该更换你的WhereInclude方法尝试这样的:

List<MyObj> MyObjList = DbContext.MyObj 
    .Where(x => x.MyNestedObj.MyNestedNestedObj.ID == SomeValue) 
    .Include(x => x.MyNestedObj) 
    .ThenInclude(x => x.MyNestedNestedObj) 
    .ToList(); 
+0

试过它不工作。抛出同样的异常。 – Sknecht

相关问题