只是想要人们对场景的看法:
更有效率:
或者这是微不足道的?
我的方案是我们有一个运行状况检查例程,每隔10秒对表执行一次select,很少需要更新(只有在部署了新版本时才更新记录)。那么我们应该在关闭更改跟踪功能的情况下进行健康检查吗?
答案 0 :(得分:4)
根据您的使用案例,我认为No-tracking
次查询会向您的应用提供big performance boost
。
所以你可以使用AsNoTracking()
using (var context = new HelthContext())
{
var patients = context.Patients.AsNoTracking().ToList();
}
如果您在数据库中知道entity
already exists
但not currently being tracked
context
context
,那么您可以告诉Attach
跟踪实体在DbSet
上使用var existingPatient = new Patient { Id = 1, Name = "Patient 1" };
using (var context = new HelthContext())
{
context.Patients.Attach(existingPatient );
// Do some more work...
context.SaveChanges();
}
方法,如下所示。
{{1}}