EF Include()与AsNoTracking

时间:2017-05-23 16:32:31

标签: c# entity-framework linq include

我有这个linq查询:

database.EmployeeHistory.AsNoTracking()
.Include("Employee.Orders")
.Include("Employee.Books").AsNoTracking()

除了保存我为Employee.Orders所做的更改无法正常工作之外,这是有效的。这是否意味着即使我没有为Employee.Orders添加AsNoTracking它也没有被跟踪?

1 个答案:

答案 0 :(得分:0)

AsNoTracking表示您对实体所做的任何更改都不会被更改跟踪器跟踪,并且在您调用SaveChanges()时不会被选中。

AsNoTracking()适用于只读方案。在这种情况下,您的实体不会被上下文跟踪,并且应该有助于内存使用和性能

在您的情况下,删除AsNoTracking()并尝试再次保存。