我在 EF Code First 中定义了一个带有 AccountNumber 属性的客户实体。我可以毫无问题地使用他们的 AccountNumber 获取和更新单个客户。但是,当我获得所有客户时,AccountNumber 已经旧了一段时间,然后最终在更改后更新。数据库始终返回正确的 AccountNumber 值。
我分析了 SQLServer,发现获取所有客户的调用确实进入了数据库,它返回了最新的值,但是来自 DbContext 的响应给出了一个旧的 AccountNumber。所以看起来 EFCF 正在缓存我的数据。
请帮忙。
更新:代码示例 -
public IQueryable<Customer> GetCustomers()
{
return this.acmeDbContext.Customer
.Include(x => x.IpAddressRange)
;
}
public Customer GetCustomer(Guid id)
{
var Customer = this.acmeDbContext.Customer
.Include(x => x.Contacts)
.Include(x => x.IpAddressRange)
.OrderByDescending(x => x.Id)
.FirstOrDefault(x => x.CustomerId == id);
return Customer;
}
public void SaveCustomer(Customer Customer)
{
this.acmeDbContext.SaveChanges();
}