刚开始使用 EF,不知道是我的想法不正确还是我只是遗漏了一些简单的东西。
我正在尝试在一个窗口中获取链接到 SendRule 的 Institution、SendRule 和 CrimeType 信息。
在 Controller 中,我像这样传递给模型数据:
var institution = await _context.Institution
.Include(i => i.Rules)
.ThenInclude(r => r.SendRule)
.ThenInclude(c => c.CategoriesToSend)
.ThenInclude(cr => cr.CrimeType)
.AsNoTracking()
.SingleOrDefaultAsync(m => m.InstitutionID == id);
在 View 中,我会像这样显示所有内容:
<dt>
@Html.DisplayNameFor(model => model.Name)
</dt>
<table class="table">
<tr>
<th>Rule Name</th>
<th>Cron</th>
<th>Categories</th>
</tr>
@foreach (var item in Model.Rules)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.SendRule.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.SendRule.Cron)
</td>
<td>
@foreach (var item2 in Model.Rules)
{
@Html.DisplayFor(modelThing => item2.SendRule.CategoriesToSend)
}
</td>
</tr>
}
</table>
但是我无法从 item2.SendRule.CategoriesToSend 导航到 CrimeType。是因为它是多对一的关系吗?我错过了什么?
最佳答案
老天,我傻了。而不是
@foreach (var item2 in Model.Rules)
{
@Html.DisplayFor(modelThing => item2.SendRule.CategoriesToSend)
}
应该是
@foreach (var item2 in item.SendRule.CategoriesToSend)
{
@Html.DisplayFor(modelThing => item2.CrimeType.Description)
}
关于c# - 在 MVC EF 中导航多个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43590391/