创建正确的数据库上下文.net core 3

创建正确的数据库上下文.net core 3,.net,core,dbcontext,.net,Core,Dbcontext,我正试图在.NETCore3启动中显式创建一个db上下文 我知道我可以在startup.cs ConfigureServices中执行此操作,以将dbcontext注入控制器(工作正常): 我的问题是:我不太清楚显式创建db上下文的语法。我非常接近(我想),但这不起作用: String dbconn = Configuration["ConnectionStrings:VerseDBConnectionStringMySQL"]; var optionsBuilder = new DbConte

我正试图在.NETCore3启动中显式创建一个db上下文

我知道我可以在startup.cs ConfigureServices中执行此操作,以将dbcontext注入控制器(工作正常):

我的问题是:我不太清楚显式创建db上下文的语法。我非常接近(我想),但这不起作用:

String dbconn = Configuration["ConnectionStrings:VerseDBConnectionStringMySQL"];
var optionsBuilder = new DbContextOptionsBuilder<VerseDBContext>();
optionsBuilder.UseMySql(dbconn);
VerseDBContext x = optionsBuilder.UseMySql<VerseDBContext>(dbconn); <-- compile error
services.AddSingleton<IVerseStorageReader>(new DBVerseReader(x));
String dbconn=Configuration[“ConnectionStrings:VerseDBConnectionStringMySQL”];
var optionsBuilder=new DbContextOptionsBuilder();
optionsBuilder.UseMySql(dbconn);

VerseDBContext x=optionsBuilder.UseMySql(dbconn) 配置后,您必须从生成器获取选项

String dbconn = Configuration["ConnectionStrings:VerseDBConnectionStringMySQL"];
var optionsBuilder = new DbContextOptionsBuilder<VerseDBContext>();
optionsBuilder.UseMySql(dbconn);
DbContextOptions<VerseDBContext> options = optionsBuilder.Options;
VerseDBContext x = new VerseDBContext(options);
services.AddSingleton<IVerseStorageReader>(new DBVerseReader(x));

谢谢你的回复@Nkosi。你知道如何申请Oracle数据提供商吗?@FairuzSulaiman看看这些提供商这里有一个Oracle的提供商应该提供详细信息。
String dbconn = Configuration["ConnectionStrings:VerseDBConnectionStringMySQL"];
var optionsBuilder = new DbContextOptionsBuilder<VerseDBContext>();
optionsBuilder.UseMySql(dbconn);
VerseDBContext x = optionsBuilder.UseMySql<VerseDBContext>(dbconn); <-- compile error
services.AddSingleton<IVerseStorageReader>(new DBVerseReader(x));
String dbconn = Configuration["ConnectionStrings:VerseDBConnectionStringMySQL"];
var optionsBuilder = new DbContextOptionsBuilder<VerseDBContext>();
optionsBuilder.UseMySql(dbconn);
DbContextOptions<VerseDBContext> options = optionsBuilder.Options;
VerseDBContext x = new VerseDBContext(options);
services.AddSingleton<IVerseStorageReader>(new DBVerseReader(x));
String dbconn = Configuration["ConnectionStrings:VerseDBConnectionStringMySQL"];
var optionsBuilder = new DbContextOptionsBuilder<VerseDBContext>();
optionsBuilder.UseMySql(dbconn);
DbContextOptions<VerseDBContext> options = optionsBuilder.Options;    
services.AddScoped<IVerseStorageReader>( sp => {
    VerseDBContext x = new VerseDBContext(options);
    return new DBVerseReader(x);
});