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)
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扩展时导入.