我正在尝试使用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};
我正在使用Rob的最新GIT版本的亚音速3,但是当我尝试左连接时,我收到错误,见下文。 我搜索过,但没有找到任何解决方案。
任何人都可以向我解释为什么错误以及如何解决它? 感谢
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“&gt; GetAQuote.Post,System.Collections.Generic.IEnumerable1 [GetAQuote.Quote]]] GroupJoin [Post,Quote,Int32, &LT;&GT; f__AnonymousType22'`
答案 0 :(得分:0)
解决在Subsonic3中的Left Join你只需要在你的linq查询上设置.AsEnumerable()方法。
试试这个
categories.AsEnumerable()或products.AsEnumerable()