entity framework使用一次性上下文返回旧数据

这是我第一次看到这个问题。

考虑我的存储库方法:

public async Task<List> GetAllByType(string type) { using (var ctx = new DatabaseContext()) { return await ctx.Codes.Where(code => code.Type.Equals(type)).ToListAsync(); } } 

这是我在尝试为我的视图创建可观察集合时偶然发现的问题,该集合是根据上述方法的结果创建的。 如此:

 Types = new ObservableCollection(await CodeRepository.GetAllByType("TestType")); 

即使我使用的是一次性上下文,每次进行查询时,存储库都会返回旧数据。 我已经手动编辑了一些以"TestType"作为列值的条目,它仍然是未更改的旧数据。 我添加了3个新条目, 找不到

是的, 我确实在数据库中有条目 。 数据库不区分大小写,我尝试了所有组合,无论我做什么 – entity framework上下文仍然返回旧数据。

以前有人有这个问题吗?

提前致谢!

您可能正在编辑错误的数据库。 请仔细检查您的连接字符串,并确保您正在编辑应用程序实际连接的字符串。

这不是您的情况,但如果将Context声明为静态属性,则EF可以返回旧数据。 例如 :

 public MyController : Controller { public static DatabaseContext Db = new DatabaseContext(); }