左边加入亚音速3

时间:2010-03-27 13:42:47

标签: linq subsonic3 left-join

我正在尝试使用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'`

1 个答案:

答案 0 :(得分:0)

解决在Subsonic3中的Left Join你只需要在你的linq查询上设置.AsEnumerable()方法。

试试这个

categories.AsEnumerable()或products.AsEnumerable()