非跟踪查询No-Tracking Queries
有时,可能需要从查询中获取实体,但不能通过上下文跟踪这些实体。 在只读方案中查询大量实体时,这可能会导致更好的性能。 本主题所介绍的方法同样适用于查询使用 Code First 和 EF 设计器创建的模型。
新的扩展方法 AsNoTracking 允许以这种方式运行任何查询。 例如:
using (var context = new BloggingContext())
{
// Query for all blogs without tracking them
var blogs1 = context.Blogs.AsNoTracking();
// Query for some blogs without tracking them
var blogs2 = context.Blogs
.Where(b => b.Name.Contains(".NET"))
.AsNoTracking()
.ToList();
}