asp. net EF core MVC не может получить доступ к данным из третьей таблицы внешних ключей - PullRequest
0 голосов
/ 22 марта 2020

Здравствуйте, играю с asp. net core MVC, но застрял и нуждаюсь в помощи. Я пытаюсь получить свой индекс для курсов, чтобы показать фамилию преподавателя, но не могу понять, как получить доступ к информации в третьей таблице. Мне удается получить InstructerID из Отдела

    public class CourseIndexData
    {
        public IEnumerable<Course> Courses { get; set; }
        public IEnumerable<Department> Departments { get; set; }
        public IEnumerable<Instructor> Instructors { get; set; }
    }
      public async Task<IActionResult> Index()
        {

            var viewModel = new CourseIndexData();
            viewModel.Courses = await _context.Courses
                  .Include(i => i.Department)
                    .ThenInclude(i => i.Instructor)
                  .ToListAsync();

            return View(viewModel);

        }
@model ContosoUniversity.Models.SchoolViewModels.CourseIndexData

@{
    ViewData["Title"] = "Index";
}
<h1>Index</h1>
<p>
    <a asp-action="Create">Create New</a>
</p>
<table class="table">
    <thead>
        <tr>
            <th>
                Instructor
            </th>
            <th>
                Department
            </th>
            <th>
                Title
            </th>
            <th>
                Credits
            </th>

            <th></th>
        </tr>
    </thead>
    <tbody>
@foreach (var item in Model.Courses) {
        <tr>
            <td>
                ????????
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Department.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Title)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Credits)
            </td>

enter image description here

1 Ответ

0 голосов
/ 22 марта 2020

Это график данных, поэтому он будет выглядеть так:

@Html.DisplayFor(modelItem => item.Department.Instructor.LastName)

На самом деле вам не нужно иметь свойства Departments и Instructors в вашей ViewModel (CourseIndexData), потому что все эти данные фактически находятся внутри Courses и связаны через свойства навигации.

...