EF查询(不使用缓存):Set<T>().AsNoTracking()
今天工作中发现一个很妖的问题,修改产品界面,修改数据后,数据库的值发生变化,感觉掉坑里了。
然后发现读取对象的方法是这样写的:
public T GetModel(object id)
{
return dbContext.Set<T>().Find(id);
}
后来发现原来是读的EF缓存的数据,然后将读取方法改成:
public T GetModel(Expression<Func<T, bool>> whereLambda)
{
return dbContext.Set<T>().AsNoTracking().FirstOrDefault(whereLambda);
}
问题得以解决