需要ASP.NET MVC帮助

时间:2012-03-22 11:12:27

标签: asp.net-mvc entity-framework

有人可以为我解释以下代码吗?

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是我数据库中的另一个表。 (我使用实体框架)

1 个答案:

答案 0 :(得分:0)

Include告诉EF在这个sql请求中获取Genres记录,而不是让你调用两次(一次是Tickets,另一次是Tickets类型)。

在MVC音乐商店示例中引用Jon Galloway(您的代码看起来非常相似) “我们将利用实体框架功能,允许我们在检索Genre对象时指示我们想要加载的其他相关实体。此功能称为查询结果整形,使我们能够减少所需的次数访问数据库以检索我们需要的所有信息。我们想要预取我们检索的类型的专辑,所以我们将更新我们的查询以包括来自Genres.Include(“专辑”)以表明我们想要相关相册也是如此。这样效率更高,因为它会在单个数据库请求中检索我们的流派和专辑数据。“