Subsonic 3 中的左连接

发布于 2024-08-26 14:30:09 字数 1270 浏览 6 评论 0原文

我正在尝试使用 linq 在 subsonic 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};

我正在使用 subsonic 3,这是 Rob 提供的最新 GIT 版本,但是当我尝试左连接时,出现错误,请参见下文。 我已经搜索过但没有找到任何解决方案。

谁能向我解释为什么会出现这个错误以及如何修复它? 谢谢

类型“System.Collections.Generic.IEnumerable1[GetAQuote.Post]”的表达式不能用于方法“System.Linq.IQueryable1[<”的类型“System.Linq.IQueryable1[GetAQuote.Post]”的参数;>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.IEnumerable1%5BGetAQuote.Quote%5D%5D%5D%5D">GetAQuote.Post,System.Collections.Generic.IEnumerable1[ GetAQuote.Quote]]] GroupJoin[Post,Quote,Int32,<>f__AnonymousType22'`

I'm trying to do a left join in subsonic 3 using linq but it doesn't seem to work, I get a big error.

        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};

I'm using subsonic 3, latest GIT version from Rob, but I'm getting an error, see below, when I try a left join.
I have searched but I didn't found any solution.

Can anyone explain to me why the error and how to fix it?
Thanks

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.IEnumerable1%5BGetAQuote.Quote%5D%5D%5D%5D">GetAQuote.Post,System.Collections.Generic.IEnumerable1[GetAQuote.Quote]]] GroupJoin[Post,Quote,Int32,<>f__AnonymousType22'`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寂寞花火° 2024-09-02 14:30:11

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

试试这个

categories.AsEnumerable()或products.AsEnumerable()

to solve Left Join in Subsonic3 you just need to set .AsEnumerable() method on your linq query.

Try this

categories.AsEnumerable() or products.AsEnumerable()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文