2011-10-05 78 views
0

我在LINQPad中構建一個LINQ查詢表達式,該表達式使用左外連接,分組和by計數。該查詢產生以下錯誤。LINQ左外部連接與分組和計數產生錯誤

「AnonymousType#1」中不包含關於「ContentTypeID」 定義和沒有擴展方法「ContentTypeID」接受的 類型「AnonymousType#1」的第一參數可以發現(按F4來添加使用 指令或組件參考)

這是查詢。

from t1 in ContentTypes 
from t2 in VwContentTRIGOF.Where(x => t1.ContentTypeID == x.ContentTypeID && new List<int> { 2588, 2227 }.Contains(x.ResearchAreaID)).DefaultIfEmpty() 
where t1.IsActive == true 
group new {t1, t2} by new { t1.ContentTypeID, t1.Label } into g 
select new { g.Key.ContentTypeID, g.Key.Label, Disabled = g.Count(t => t.ContentTypeID == null) > 0 } 

該錯誤突出顯示最後一行中ContentTypeID的最後一次使用,但似乎無法安排查詢以獲得所需的結果。

有什麼建議嗎?

謝謝。

回答

1

你組的每個項目都有項目t1t2,不ContentTypeID,所以我懷疑你的最終select應該是:

select new { g.Key.ContentTypeID, g.Key.Label, 
      Disabled = g.Count(t => t.t2.ContentTypeID == null) > 0 } 

(這是假設你從t2希望它 - 如果你從t1想它,然後適當地改變它......但考慮到t1.ContentTypeID是關鍵的一部分,這似乎不太可能......計數將只是組數。)

+0

StackOverflow太快。我再接受幾分鐘的答覆。 :) 謝謝你的幫助。 – Kuyenda