1.include方法,预加载.当我们需要加载某些关联的关系时,可是用Include方法
2.context.Entry(canyon).Collection(d => d.Lodgings).Load();
针对特别的实体类加载对应的关联表数据.例如:班级和学生的关系数据.
3.context.Entry(blog).Collection(b => b.Posts)
.Query()
.Where(p => p.CreationTime >= new DateTime(2011, 1, 1))
.Load();
Collection()方法在这里返回DbCollectionEntry,Query()方法返回对应的IQueryable<T>对象。
4.在EF 4和EF 3.5 SP1中,我们可以使用ToTraceString()方法得到EF查询所生成的SQL。
5.asNoTracking()无跟踪查询.
DbSet.Find
DbSet.Local
DbSet.Remove
DbSet.Add
DbSet.Attach
DbContext.SaveChanges
DbContext.GetValidationErrors
DbContext.Entry
DbChangeTracker.Entries
在上面的方法中 会调用自动检测功能。 这个功能默认是开启的 当我们在做批量操作时 可以关闭这个来提高性能
context.Configuration.AutoDetectChangesEnabled = false;
6.当你准确的知道你的程序需要的实体关系图时, 你可以使用 DbQuery 类中的 Include 方法或 DbExtensions 类中的 Include 方法的一个重载通过定义一个查询路径来控制哪些相关实体将会作为初始查询的一部分返回.
7.精确加载相关实体
context.Entry(course).Reference("Department").Load();