加载方法
在某些情况下,你可能希望将实体从数据库加载到上下文中,而无需立即对这些实体执行任何操作。 如本地数据中所述,为数据绑定加载实体就是一个很好的例子。 一种常见方法就是编写 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();
}