我正在尝试学习如何作为 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/