Entity Framework 使用AsNoTracking
示例
错误的例子:
var location = dbContext.Location
.Where(l => l.Location.ID == location_ID)
.SingleOrDefault();
return location;由于上述代码只是返回一个实体而无需修改或添加它,因此我们可以避免跟踪成本。
好的例子:
var location = dbContext.Location.AsNoTracking()
.Where(l => l.Location.ID == location_ID)
.SingleOrDefault();
return location;当我们使用函数时,AsNoTracking()我们明确地告诉实体框架实体没有被上下文跟踪。从数据存储中检索大量数据时,这尤其有用。但是,如果您要对未跟踪的实体进行更改,则必须记住在调用之前附加它们SaveChanges。