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(); }