dbcontext 学习

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(201111))
          .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();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值