Mysql 来自2个不同表的嵌套foreach

Mysql 来自2个不同表的嵌套foreach,mysql,asp.net-mvc-4,Mysql,Asp.net Mvc 4,下面是我要做的: 我有一个表包含一个标题(titletable),还有一个表包含文本(Text table),所以一个标题将包含多个文本,这就是我使用两个表的原因。 我可以列出表1,这是代码视图: TitleTable TextTable ------------------- --------------- Id(int) Id (int) Title(string) TitleTableId (int)

下面是我要做的: 我有一个表包含一个标题(titletable),还有一个表包含文本(Text table),所以一个标题将包含多个文本,这就是我使用两个表的原因。 我可以列出表1,这是代码视图:

    TitleTable         TextTable
-------------------  ---------------
Id(int)               Id (int)
Title(string)         TitleTableId (int)
                      Text (string)
                      TitleOfText(int)
我不需要另一个foreach来带来我试过的标题文本

@foreach (var item in Model.TitleTable)
  {
     @item.Title
  }  
这会返回null,因为我不给任何Id返回,它只从视图模型中获取,而不是从控制器中获取,所以我如何才能到达文本,最后应该是这样的

    @foreach (var item in Model.TitleTable)
    {
      @item.Title

        foreach (var itemDesc in Model.Text.OrderBy(o => o.Id).Where(o => o.Id == item.Id))
         {
             @itemDesc.Text
         }
     }  

这对我来说毫无意义:

Title 1
                                   Text 1of title 1
                                   Text 2of title 1
title 2                         
                                   text 1 of title2
                                   text 2 of title2
   @foreach (var item in Model.TitleTable)
   {
      @item.Title

     foreach (var itemDesc in Model.Text.Where(o => o.TitleTable== item.Id))
      {
       @itemDesc.Text
      }
    }  
您正在将
TitleTable.Id
值与
TextTable.Id
值匹配吗?也许你的意思是:

.Where(o => o.Id == item.Id)

假设
TextTable.TextTableId
TitleTable.Id
的外键,则这将是您要比较的值,以筛选该集合。

item.ıd=表示titletableid,我尝试从模型中包含项的第一个foreach中获取。titletable@Jackal当前位置我只是试着换一下,看看是否有效。但答案仍然是一样的。您的命名方案有点难以遵循,但关键是您需要匹配外键。您的代码正在将
Id
Id
进行比较,但是您需要将
Id
TitleTableId
进行比较。是的,您是对的,它应该是TitleTableId==item.Id。但是我如何才能在viewmodel中获得foring键?@Jackal:那么,什么是
Model.Text
?我假设它是
TextTable
元素的集合。如果是其他内容,则需要指定。它的viewmodel包含Id、文本、标题Id,我试图从控制器获取它,但仍然为空。我将编辑该问题
.Where(o => o.TitleTableId == item.Id)