加载方法

在某些情况下,你可能希望将实体从数据库加载到上下文中,而无需立即对这些实体执行任何操作。 如本地数据中所述,为数据绑定加载实体就是一个很好的例子。 一种常见方法就是编写 LINQ 查询,然后对它调用 ToList,只为了立即放弃创建的列表。 Load 扩展方法的工作方式与 ToList 一样,只不过它完全避免了列表创建。

本主题所介绍的方法同样适用于查询使用 Code First 和 EF 设计器创建的模型。

下面是使用 Load 的两个示例。 第一个方法取 Windows 窗体数据绑定应用程序,其中 Load 用于在绑定到本地集合之前查询实体,如本地数据中所述:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    _context = new ProductContext();

    _context.Categories.Load();
    categoryBindingSource.DataSource = _context.Categories.Local.ToBindingList();
}

第二个示例演示如何使用 Load 加载相关实体的筛选集合,如加载相关实体中所述:

using (var context = new BloggingContext())
{
    var blog = context.Blogs.Find(1);

    // Load the posts with the 'entity-framework' tag related to a given blog
    context.Entry(blog)
        .Collection(b => b.Posts)
        .Query()
        .Where(p => p.Tags.Contains("entity-framework"))
        .Load();
}