vb.net - 这个带有 Join 的 Linq 查询如何编写为 Lambda?

标签 vb.net lambda entity-framework-6

我正在尝试学习如何作为 lambda 进行连接,并且我有这个 linq 查询,但无法弄清楚如何作为 lambda 进行连接

From posts In db.be_Posts Join t In db.be_PostTag On posts.PostID 
Equals t.PostID Where t.Tag = tag Select posts.Title

上面的连接在 LinqPad 中有效。这就是我目前所拥有的 lambda。我还尝试将所有内容放入 View 模型中。

db.be_Posts.OrderByDescending(Function(x) x.DateCreated).Join(db.be_PostTag, 
Function(p) p.PostID, Function(t) t.PostID, Function(p, t).Select(Function(p1) 
New be_PostsViewModel
With {.Id = 

当我输入 p、p1 或 t 时,我在 .Id 之后没有得到智能感知。我究竟做错了什么?谢谢

最佳答案

这部分看起来很奇怪(有意为之还是拼写错误?):

....Function(p, t).Select(Function(p1)...

据我所知,这样的事情应该有效:

db.be_Posts.
    OrderByDescending(Function(x) x.DateCreated).
    Join(db.be_PostTag, _
            Function(p) p.PostID, _
            Function(t) t.PostID, _
            Function(p, t) New be_PostsViewModel With 
                            {
                                .Id = p.PostID,
                                ....
                                ....
                            })

您的 LINQ 查询语法可以转换为方法语法,如下所示:

db.be_Posts.
    Join(db.be_PostTag, _
            Function(p) p.PostID, _
            Function(t) t.PostID, _
            Function(p, t) p.Title)

关于vb.net - 这个带有 Join 的 Linq 查询如何编写为 Lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24923519/

相关文章:

c# - 在设计时显示 MultilineStringEditor 以编辑编辑控件的行?

c++ - 无法从 lambda 构建

azure - 用户 '<token-identified principal>' 基于 AD token 的身份验证登录失败。在 Azure SQL 的 Entity Framework 6 中

.net - 控制应用程序的音量 : By Process-ID

c# - 转换运算符仅适用于数字类型.net

Java 8 Lambda 和 Streams...不是 "how",而是 "why"?

c# - 我可以克隆一个 IQueryable 以在另一个 DbContext 的 DbSet 上运行吗?

entity-framework - 如何使用 Fluent API 在具有 ASC/DESC 排序的多列上添加索引?

.net - VB.NET 使用 system.net.tcpclient 编写 telnet 客户端

c++ - lambda 表达式中的作用域