当前位置 : 主页 > 编程语言 > c语言 >

c# – 如何在ASP .NET中的configureServices函数中获取连接字符串

来源:互联网 收集:自由互联 发布时间:2021-06-25
我正在尝试使用身份服务来管理我的应用程序的登录.我有以下内容 let configureServices (services : IServiceCollection) = // Configure InMemory Db for sample application services.AddDbContextIdentityDbContextIdentityU
我正在尝试使用身份服务来管理我的应用程序的登录.我有以下内容

let configureServices (services : IServiceCollection) =
    // Configure InMemory Db for sample application        
    services.AddDbContext<IdentityDbContext<IdentityUser>>(
        fun options ->        
            options.UseInMemoryDatabase("NameOfDatabase") |> ignore
        ) |> ignore

但是它使用内存数据库.我想保留用户注册信息,我有postgresql设置,并希望使用该数据库来保存信息.我在settings.json文件中有connectionString信息.我想将上面的函数更改为:

let configureServices (services : IServiceCollection) =
    // Configure InMemory Db for sample application        
    services.AddDbContext<IdentityDbContext<IdentityUser>>(
        fun options ->        
            let config = ctx.GetService<IConfiguration>()
            let connString = config.Item("connectionString")
            options.UseNpgsql(connString) |> ignore
        ) |> ignore

但问题来自configureServices函数,我无法访问处理应用程序配置的Httpcontext(由上面的ctx表示).我该怎么做呢?基本上我想从configureServices函数中的settings.json文件中获取connectionString字段的值.

希望你将以下代码行添加到你的app.cofig文件中.

    

<connectionStrings>
    <add name="DefaultConnection"
         connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
  </connectionStrings>
</configuration>

其中存储了数据库连接字符串.
在ConfigureServices()中,U可以访问配置对象,从而可以从app.config文件访问应用程序连接字符串.

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

有关详细信息:-Click Here

网友评论