C# 实体框架核心选择不从另一个进程读写

C# 实体框架核心选择不从另一个进程读写,c#,entity-framework-core,C#,Entity Framework Core,我有一个从依赖项注入中获取DbContext的类: public DA(CustomDbContext db){ this.db=db; } public void AddEntry(Entry entry){ db.Entries.Add(entry); db.SaveChanges(); } public Entry SelectEntry(int id){ return db.Entries.First(e=>e.Id==id); } 该类

我有一个从依赖项注入中获取DbContext的类:

public DA(CustomDbContext db){
    this.db=db;
}

public void AddEntry(Entry entry){
    db.Entries.Add(entry);
    db.SaveChanges();   
}

public Entry SelectEntry(int id){
    return db.Entries.First(e=>e.Id==id);
}
该类在依赖项注入中使用
AddTransient
注册。问题是,当我执行以下操作时:

var entry=new Entry{Stuff="stuff"};
da.AddEntry(entry);
await Task.Delay(2000);
var entryWithRecentChanges=da.SelectEntry(entry.Id);

我没有得到其他进程写入该条目的更改。我知道
SaveChanges
创建了一个新的事务,但我认为该事务只在该调用中持续。据我所知,另一个进程不使用事务。如何强制实体框架获取该条目的最新数据?我正在使用实体框架核心和SQL Server。

使用AsNoTracking修复了以下问题:

public Entry SelectEntry(int id){
    return db.Entries.AsNoTracking().First(e=>e.Id==id);
}
请将您的问题包括在内,其他人可以对其进行编译和测试。还包括运行代码时由两个实例/线程/进程的实体框架生成的SQL语句。