C# 使用一次性上下文返回旧数据的实体框架

C# 使用一次性上下文返回旧数据的实体框架,c#,wpf,entity-framework,linq,C#,Wpf,Entity Framework,Linq,这是我第一次看到这个问题 考虑我的存储库方法: public async Task<List<Code>> GetAllByType(string type) { using (var ctx = new DatabaseContext()) { return await ctx.Codes.Where(code => code.Type.Equals(type)).ToListAsync(); } } 这是我在尝试为我的视

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

考虑我的存储库方法:

public async Task<List<Code>> GetAllByType(string type)
{
    using (var ctx = new DatabaseContext())
    {
        return await ctx.Codes.Where(code => code.Type.Equals(type)).ToListAsync();
    }
}
这是我在尝试为我的视图创建一个可观察的集合时遇到的问题,该集合是根据上述方法的结果创建的。因此:

Types = new ObservableCollection<Code>(await CodeRepository.GetAllByType("TestType"));
尽管我使用的是一次性上下文,但每次我进行查询时,存储库都会返回旧数据。我已经用
“TestType”
作为列值手动编辑了一些条目,它仍然是未更改的旧数据。我添加了3个新条目,它们是未找到的

是的,我在数据库中有条目。数据库是不区分大小写的,我已经尝试了所有组合,无论我做什么-实体框架上下文仍然返回旧数据

以前有人有过这个问题吗


提前谢谢

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

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

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

“手工编辑”?这意味着什么?我打开了SQL表,并手动编辑了列条目。对于初学者,您可以分解问题,看看它在哪里不能正常工作。您有几种可能的情况:1.linq查询失败,2。异步失败,3。observablecollection失败4。其他地方失败了你在哪里做的?你可能编辑错数据库了。我是世上最愚蠢的人。谢谢,我使用了错误的数据库。我想现在是时候结束工作了,14个小时就足够了。请您回答,让人们检查他们的连接字符串和数据库,以备将来参考。谢谢,我们将记录以供将来参考。