如何修复“在上一个操作完成之前在此上下文中启动的第二个操作……”在使用依赖项注入时?

从数据库中读取数据时,我收到此错误:

在上一个操作完成之前,在此上下文中开始第二个操作。 任何实例成员都不保证是线程安全的。

我有以下ApplicationContext.cs:

public class ApplicationContext : Microsoft.EntityFrameworkCore.DbContext { public ApplicationContext(DbContextOptions options) : base(options) { } public DbSet MyClasses{ get; set; } } 

以下ApplicationContextFactory.cs

 public class ApplicationContextFactory : IDesignTimeDbContextFactory { public ApplicationContext CreateDbContext(string[] args) { var builder = new DbContextOptionsBuilder(); var connection = "myConnectionString"; builder.UseSqlServer(connection); return new ApplicationContext(builder.Options); } } 

以下ServiceLoader.cs(我声明DI):

 public static class ServiceLoader { public static void ConfigureServices(IServiceCollection services) { services.AddSingleton(); var connection = "myConnectionString"; services.AddDbContext(options => options.UseSqlServer(connection)); } } 

最后,以下Repository抛出exception:

 public class Repository : IRepository { private ApplicationContext _db; public Repository (ApplicationContext db) { _db = db; } public List Get() { _db.MyClasses.ToList(); } } 

我还尝试将Repository声明为Transient而不是Singleton,但抛出了类似的错误

‘尝试在配置上下文时使用上下文。 DbContext实例不能在OnConfiguring内使用,因为此时仍在配置它。 如果在上一个操作完成之前在此上下文上启动第二个操作,则会发生这种情况。 任何实例成员都不能保证是线程安全的。

有关如何解决此问题的任何想法? 谢谢!