【问题标题】:How would this Linq query with Join be written as a Lambda?这个带有 Join 的 Linq 查询如何写成 Lambda?
【发布时间】:2014-09-15 09:45:55
【问题描述】:

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

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。我也在尝试将所有内容都放入视图模型中。

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 之后没有智能感知。我究竟做错了什么?谢谢

【问题讨论】:

    标签: vb.net lambda entity-framework-6


    【解决方案1】:

    这部分看起来很奇怪(有意还是错字?):

    ....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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多