2015-12-02 79 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

相關問題