Entity framework 4 实体框架4-防止基本缓存

Entity framework 4 实体框架4-防止基本缓存,entity-framework-4,entity,Entity Framework 4,Entity,如果我有entity framework 4上下文,通常如果我运行了如下查询: db.Invoices.Where(I => whatever); 然后再运行其他操作: db.Invoices.Where(I => something_else); 从第二个查询返回的任何对象(也是从第一个查询返回的)都不会从数据库中加载。EF将只获取该键已有的对象 问题,关闭此功能的最佳方式是什么?我能告诉EF毫无例外地从数据库中加载它需要的每个对象吗 谢谢 您需要更改实体的合并选项设置,例如

如果我有entity framework 4上下文,通常如果我运行了如下查询:

db.Invoices.Where(I => whatever);
然后再运行其他操作:

db.Invoices.Where(I => something_else);
从第二个查询返回的任何对象(也是从第一个查询返回的)都不会从数据库中加载。EF将只获取该键已有的对象

问题,关闭此功能的最佳方式是什么?我能告诉EF毫无例外地从数据库中加载它需要的每个对象吗


谢谢

您需要更改实体的合并选项设置,例如

db.Invoices.MergeOption = MergeOption.OverwriteChanges;
OverwriteChanges
表示始终从数据源加载对象。您还可以使用
NoTracking
完全禁用跟踪,如果您不需要更新数据或重复使用查询,则可以提高性能。默认值为
AppendOnly
,它具有您观察到的行为