Include方法的作用是什么

ank*_*311 3 c# linq-to-entities

我正在尝试学习项目的LINQ.但我对Include方法感到有些困惑.它是干什么用的?相册变量的以下两个初始化之间有什么区别?

var album = storeDB.Albums.Include("Artist").ToList();
var album = storeDB.Albums.ToList();
Run Code Online (Sandbox Code Playgroud)

Stu*_*tLC 7

Include是一种扩展方法,EF使用它来启用实体的预先加载.

在第一种情况下,通过指定Include("Artist"),当你检索Album从实体Albums集,你指示LINQ还检索关联的Artist实体(通常协会是通过数据库中的外键,但你可以在你的模型进行关联以及).

在第二种情况下,在获取相册时,您不会浏览任何相关实体.

请注意,从Entity Framework 4.1及其后开始,有一种使用Include的首选机制,它采用lambda,因此字符串关联变为强类型,即:

var album = storeDB.Albums.Include(alb => alb.Artist).ToList();
Run Code Online (Sandbox Code Playgroud)

记得System.Data.Entity在使用lambda扩展时导入.