2012-02-01 118 views
3

我正在處理linq查詢,並嘗試將實體包含到Mutilevel include in C# Linq中建議的多級別實體。Linq異常表達式必須是MemberExpression

所以我寫下像

query.Include(u => u.Stops.Select(d => d.Address).Select(c => c.City)); 

查詢,其中查詢

IQueryable<SomeEntity> query 

,我得到異常

表達式必須是一個MemberExpression

截圖我的實體是enter image description here 請幫忙,謝謝

+1

顯示你的'SomeEntity','Stop'和'Address'實體。目前還不清楚這些導航屬性屬於哪個。 – 2012-02-01 11:27:57

+0

檢查文檔:http://msdn.microsoft.com/en-us/library/gg671236(v=vs.103).aspx。似乎你需要嵌套'Select()',而不是鏈接它們。甚至有一個你想要做的事情的例子。 – millimoose 2012-02-01 11:38:27

+0

拉迪斯拉夫,我已經上傳了我的實體的屏幕截圖,請確認 – MegaMind 2012-02-01 11:55:46

回答

0

這種超負荷的Include(擴展名?)過法鏈不支持包容。它,然而,支持包括表達式嵌套:

query.Include(u => u.Stops.Select(d => d.Address.City)); 

// this would work too: 
categories.Include(u => u.SubCategories.Select(c => c.Items.Select(i => i.Manufacturer))); 
// equals 
categories.Include("SubCategories.Items.Manufacturer"); 

Select部分僅用於訪問集合類型屬性的項目的成員。

+0

謝謝,我試過了,但它仍然給出了相同的例外 – MegaMind 2012-02-01 11:38:43

相關問題