以一对多关系检索相关数据

时间:2016-10-15 10:52:25

标签: asp.net asp.net-mvc include

我有两个表:Users(user_id,name)和Records(record_id,record_time,user1_id,user2_id)。因此,对于每条记录,应该有两个用户。我想列出记录并显示用户1和用户2的用户名。现在,默认的View结构只能按ID显示一个相关的用户名。

如何检索记录的第二个用户的名称?

INDEX行动

public ActionResult Index()
    {
        var records = db.Records.Include(r => r.User);
        return View(records.ToList());
    }

INDEX视图

<table class="table">
<tr>        
    <th>
        @Html.DisplayNameFor(model => model.record_time)
    </th>               
    <th>
        @Html.DisplayNameFor(model => model.User.name)
    </th>        
    <th></th>
</tr>

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.record_time)
    </td>        
    <td>
        @Html.DisplayFor(modelItem => item.User.name)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.record_id }) |
        @Html.ActionLink("Details", "Details", new { id=item.record_id }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.record_id })
    </td>
</tr>
}

</table>

1 个答案:

答案 0 :(得分:1)

映射不正确,您只映射了一个用户。您需要在不同的导航属性上映射两个用户。

class Record 
{
    public User User1 {get; set;}
    public User User2 {get; set;}
}