ASP.NET MVC 3(实体框架)中的热切加载

本文关键字:加载 框架 MVC NET 实体 ASP | 更新日期: 2023-09-27 18:26:45

我有一个简单的数据结构

  • 员工
  • 员工有列表
  • 教育有大学、系
  • 系和大学的名称为字符串(我的意思是系和大学也是实体)

我的问题是,如何在实体框架中急切地加载特定员工的教育列表以及每个教育的大学和部门信息。

在ASP.NET MVC教程中,有一个查询类似于:

var viewModel = new InstructorIndexData();
viewModel.Instructors = db.Instructors
    .Include(i => i.OfficeAssignment)
    .Include(i => i.Courses.Select(c => c.Department))
    .OrderBy(i => i.LastName);

但是我的include只接受字符串参数(使用System.Linq

我该如何解决这个问题?

谢谢。。。

ASP.NET MVC 3(实体框架)中的热切加载

不在System.Linq中,而是在System.Data.Entity中(因此使用System.Data.Eentity),并且存在于EF 4.1中,但我必须承认,我不知道它出现在哪个版本中。

该片段用于EF I thin的新版本。您使用的是什么4.x版本?

您应该能够使用导航属性的名称:

viewModel.Instructors = db.Instructors
    .Include("OfficeAssignment")
    .Include("Courses.Department")   // not so sure about this one
    .OrderBy(i => i.LastName);