【问题标题】:How do I search multiple tables in an MVC application?如何在 MVC 应用程序中搜索多个表?
【发布时间】:2012-04-21 23:58:08
【问题描述】:

我在 MVC 应用程序中有 2 个表(TopicsComments)。我想查询comments 表,但也要从topic 表中返回title

我相信我正在使用 EF。我会使用 SQL,但我不确定这是否适用于 MVC 应用程序。

使用 SQL 我会执行以下操作:

SELECT c.Id, c.Comment, t.Title 
FROM Comments c INNER JOIN Topics t
ON c.TopicId = t.Id

感谢任何帮助。

【问题讨论】:

  • “我相信我在使用 EF” ?!?!?!?!
  • 我知道EF 是什么,我不知道怎么会有人“相信”他使用的是什么ORM...

标签: c# asp.net-mvc linq entity-framework join


【解决方案1】:

这是使用 LINQ 编写 sql 查询的方式:

var query = _db.Comments.Join(
    _db.Topics,
    c => c.TopicId,
    t => t.Id,
    (comment, topic) =>
       new
       {
           Comment = comment,
           Topic = topic
       });

【讨论】:

  • 谢谢。 (评论,主题)部分是否代表某种类型的演员?除了 => 字符之前的单个字符外,我没有看到任何其他内容。
  • @alockrem,它不投射任何东西,把它想象成第一个加入实体的别名 Comments 和第二个加入实体的别名 Topics,这样你就可以选择跨越拖表(实体)
  • 完美。非常感谢您的帮助。
【解决方案2】:

使用 LINQ 和 EF 很容易。它看起来像这样:

Dim Comments = Comments.
    Where(function(x) x.Topic.Id = ???).
    Select(function(x) New with {
        .Comment = x.Comment,
        .Title = x.Topic.Title
    })

返回IQueryable(Of Anonymous Type)

然后对于每个条目,您可以像使用其他任何属性一样使用属性... 暗淡 A = Item.Comment Dim B = Item.Title

【讨论】:

    猜你喜欢
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2018-01-06
    • 2020-09-12
    • 2021-01-20
    • 1970-01-01
    相关资源
    最近更新 更多