在Entity Framework核心构造函数中读取DbContextOptions值

时间:2018-02-15 09:55:43

标签: connection-string entity-framework-core dbcontext options

在我的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值?

1 个答案:

答案 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;
}