我正在尝试学习如何作为lambdas进行连接,并且我有这个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
以上Join在LinqPad中运行。这就是我所拥有的lambda。我也试图将所有内容都放入viewmodel中。
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
之后我无法获得智能感知。我究竟做错了什么?谢谢
答案 0 :(得分:4)
这部分看起来很奇怪(打算或拼写错误?):
....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)