如何使用EFCore迭代Student的Enrollments导航属性?

时间:2016-08-14 15:47:54

标签: c# asp.net-mvc entity-framework

我正在使用似乎无法在当前版本中进行延迟加载的EFCore。

我的模型定义如下:

Details.cshtml

Enrollments我想按照以下方式迭代学生的@model ContosoUniversity.Models.Student <h2>Details</h2> <dl> <dt> @Html.DisplayNameFor(model => model.FirstMidName) </dt> <dd> @Html.DisplayFor(model => model.FirstMidName) </dd> <dt> @Html.DisplayNameFor(model => model.Enrollments) </dt> <dd> <table> <thead> <tr> <th>Course Title</th> <th>Grade</th> </tr> </thead> <tbody> @foreach (var item in Model.Enrollments) { <tr> <td>@Html.DisplayFor(model => item.Course.Title)</td> <td>@Html.DisplayFor(model => item.Grade)</td> </tr> } </tbody> </table> </dd> </dl>

protected $baseUrl = 'http://myapp.app';

但是,我收到了以下错误。

enter image description here

问题

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

您要做的是延迟加载。 EF Core 尚不支持Source

您需要做的是,在查询数据库时,使用Include()来执行急切加载

这样的事情:

var student = context.Students
                     .Include(s => s.Enrollments)
                     .ThenInclude(e => e.Course)
                     .FirstOrDefault(s => s.ID == id);