我試圖做亞音速3使用linq左連接,但它似乎不工作,我得到一個大錯誤。左亞音速加入3
var post = from p in Post.All()
join q in Quote.All() on p.ID equals q.PostID into pq
where p.ID == id.Value
from qt in pq.DefaultIfEmpty()
select new {p, qt};
我使用亞音速3,最新的Git版本來自Rob,但我得到一個錯誤,見下文,當我嘗試左連接。 我已經搜索,但我沒有找到任何解決方案。
任何人都可以向我解釋爲什麼錯誤以及如何解決它? 由於
Expression of type 'System.Collections.Generic.IEnumerable1[GetAQuote.Post]' cannot be used for parameter of type 'System.Linq.IQueryable1[GetAQuote.Post]' of method 'System.Linq.IQueryable1[<>f__AnonymousType221[GetAQuote.Post], System.Collections.Generic.IEnumerable1%5BGetAQuote.Quote%5D, System.Linq.Expressions.Expression1[System.Func2%5BGetAQuote.Post,System.Int32%5D%5D, System.Linq.Expressions.Expression1[System.Func2%5BGetAQuote.Quote,System.Int32%5D%5D, System.Linq.Expressions.Expression1[System.Func3%5BGetAQuote.Post,System.Collections.Generic.IEnumerable1[GetAQuote.Quote],<>f__AnonymousType22%5BGetAQuote.Post,System.Collections.Generic.IEnumerable
1%5BGetAQuote.Quote%5D%5D%5D%5D「> GetAQuote.Post,System.Collections.Generic.IEnumerable1 [GetAQuote.Quote]]]羣組加入[郵政,報價單,的Int32,<> f__AnonymousType22'`
當我嘗試這是我過去的錯誤,但結果數據庫活動是從兩個表中選擇所有,顯然留下所有加入邏輯在覈心完成。這是不對的,是嗎? – 2011-04-25 22:03:26
@凱利,我一直在研究亞音速3的核心,是的,這似乎是發生了什麼。 '.AsEnumerable'顯然等同於'.ToList',因爲它從數據庫中獲取絕對的一切。此外,Subsonic似乎沒有任何代碼來處理嵌套查詢 – Earlz 2011-06-27 22:28:47