在我的asp.net核心服务中,我在启动时有这个
services.AddDbContext<Mydb_Context>(
options => options.UseSqlServer(Configuration["Settings:ConnString"]));
为了使其有效,我还创建了这个片段:
public Mydb_Context(DbContextOptions<Mydb_Context> options) : base(options)
{
//other stuff here
}
我现在的问题是:在这里&#34;其他东西&#34;部分,我如何读取选项值并检索我的连接字符串?由于还有另一个dll而不是同一个项目,我无法再从appsettings.json中读取它。
如果我在调试会话期间破坏了我的代码,我可以在此对象内的值中看到连接字符串,但我不知道如何正确地获取它。我在&#34; Extension&#34;中看到了这个值。选项对象的属性。
那么,我该如何读取DbContextOptions值?
答案 0 :(得分:3)
那么,我该如何读取DbContextOptions值?
您可以(不公开但使用某些EF Core内部基础结构对象,特别是RelationalOptionsExtension
类),但您不需要。
要获取连接信息,只需使用上下文Database
属性和GetDbConnextion
方法:
public Mydb_Context(DbContextOptions<Mydb_Context> options) : base(options)
{
//other stuff here
var connectionString = this.Database.GetDbConnection().ConnectionString;
}