有人可以为我解释以下代码吗?
public class StoreEditorViewModel
{
public List<Ticket> TotalView { get; set; }
public StoreEditorViewModel()
{
using (MvcTicketsEntities storeDB = new MvcTicketsEntities())
{
var temp = storeDB.Tickets.Include(x => x.Genres).Include(x => x.Artists).ToList();
TotalView = temp.ToList();
}
}
}
我不明白Include(x =&gt; x.genres)* genres是我数据库中的另一个表。 (我使用实体框架)
答案 0 :(得分:0)
Include告诉EF在这个sql请求中获取Genres记录,而不是让你调用两次(一次是Tickets,另一次是Tickets类型)。
在MVC音乐商店示例中引用Jon Galloway(您的代码看起来非常相似) “我们将利用实体框架功能,允许我们在检索Genre对象时指示我们想要加载的其他相关实体。此功能称为查询结果整形,使我们能够减少所需的次数访问数据库以检索我们需要的所有信息。我们想要预取我们检索的类型的专辑,所以我们将更新我们的查询以包括来自Genres.Include(“专辑”)以表明我们想要相关相册也是如此。这样效率更高,因为它会在单个数据库请求中检索我们的流派和专辑数据。“