使用外键表列显示数据asp.net core mvc#

使用外键表列显示数据asp.net core mvc#,c#,asp.net-mvc,asp.net-core,ssms,C#,Asp.net Mvc,Asp.net Core,Ssms,我有一个Invoice类,它具有FoodItem和User表的FoodId和UserId外键 通过将脚手架项目添加到控制器文件夹,我获得了以下页面Index.cshtml @model IEnumerable<WebApplication1.Models.Invoice> @{ ViewData["Title"] = "Index"; Layout = "~/Views/Shared/_Layout.cshtml&q

我有一个Invoice类,它具有FoodItem和User表的FoodId和UserId外键

通过将脚手架项目添加到控制器文件夹,我获得了以下页面Index.cshtml

@model IEnumerable<WebApplication1.Models.Invoice>

@{
    ViewData["Title"] = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<link rel="stylesheet" href="~/css/SideBar.css" />
<div class="sidebar">
    <a asp-controller="Admin">Main Page</a>
    <a asp-controller="FoodItems">Food List</a>
    <a class="active" asp-controller="Invoices">Invoice</a>
    <a asp-controller="Role">Users & Roles</a></div>
<h1>Invoice</h1>

<p>
    <a asp-action="Create">Create New</a>
</p>
<table class="table">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.UserId)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.FoodId)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.totalsum)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.quantity)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.UserId)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.FoodId)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.totalsum)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.quantity)
                </td>
                <td>
                    <a asp-action="Edit" asp-route-id="@item.InvoiceId">Edit</a> |
                    <a asp-action="Details" asp-route-id="@item.InvoiceId">Details</a> |
                    <a asp-action="Delete" asp-route-id="@item.InvoiceId">Delete</a>
                </td>
            </tr>
        }
    </tbody>
</table>
@model IEnumerable
@{
ViewData[“标题”]=“索引”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
主页
食物清单
发票联
用户和角色
发票联

创造新的

@DisplayNameFor(model=>model.UserId) @DisplayNameFor(model=>model.FoodId) @DisplayNameFor(model=>model.totalsum) @DisplayNameFor(model=>model.quantity) @foreach(模型中的var项目) { @DisplayFor(modelItem=>item.UserId) @DisplayFor(modeleItem=>item.FoodId) @DisplayFor(modelItem=>item.totalsum) @DisplayFor(modelItem=>item.quantity) 编辑| 细节| 删除 }
我想列出FoodItem和UserId表中的foodname和username列,而不是FoodId和UserId列。
如何实现这一点?

当您检索发票实体时,包括食品和用户,如下所示:

_context.Invoices.Include(x => x.Users).Include(x => x.Food).ToList();
然后在你看来,这样写

@Html.DisplayNameFor(model => model.User.Name)
@Html.DisplayNameFor(model => model.Food.Name)

My Invoice类不包含用户和foodad将其作为公共虚拟食品{get;set;}如果我想从AspNetUsers检索用户名,我可以在Invoice模型类中添加什么?公共虚拟标识用户用户{get;set;}未检查发票实体和用户之间的关系。您所指的用户是哪个表。确保userId是外键,否则它只是一个整数。