第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 ASP .NET 中的 configureServices 函數(shù)中獲取連接字符串

如何在 ASP .NET 中的 configureServices 函數(shù)中獲取連接字符串

C#
BIG陽 2021-09-19 15:53:35
我正在嘗試使用身份服務(wù)來管理我的應(yīng)用程序的登錄。我有以下let configureServices (services : IServiceCollection) =    // Configure InMemory Db for sample application            services.AddDbContext<IdentityDbContext<IdentityUser>>(        fun options ->                    options.UseInMemoryDatabase("NameOfDatabase") |> ignore        ) |> ignore但是它使用內(nèi)存數(shù)據(jù)庫。我想保留用戶注冊(cè)信息,并且我有 postgresql 設(shè)置并想使用該數(shù)據(jù)庫來保留信息。我在 settings.json 文件中有 connectionString 信息。我想把上面的函數(shù)改成這樣: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 函數(shù)中,我無權(quán)訪問處理應(yīng)用程序配置的 Httpcontext(由上面的 ctx 表示)。我該怎么做呢?基本上我想從我的 configureServices 函數(shù)中的 settings.json 文件中獲取 connectionString 字段的值。
查看完整描述

3 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

希望您將以下代碼行添加到您的 app.cofig 文件中。


  <connectionStrings>

    <add name="DefaultConnection"

         connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />

  </connectionStrings>

</configuration>

其中存儲(chǔ)了數(shù)據(jù)庫連接字符串。在 ConfigureServices() 中,您可以訪問配置對(duì)象,這使您可以從 app.config 文件訪問應(yīng)用程序連接字符串。


public void ConfigureServices(IServiceCollection services)

{

    // Add framework services.

    services.AddDbContext<ApplicationDbContext>(options =>

        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

}


查看完整回答
反對(duì) 回復(fù) 2021-09-19
?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

我將假設(shè)您正在使用與以下類似的功能:


WebHost

    .CreateDefaultBuilder(args)

    .ConfigureServices(Action<_> configureServices)

    .Configure(Action<_> configureApp)

你會(huì)發(fā)現(xiàn)這個(gè)ConfigureServices方法有一個(gè)重載,它需要一個(gè)Action<WebHostBuilderContext, IServiceCollection>. 因此,您可以將函數(shù)更改為:


let configureServices (context:WebHostBuilderContext) (services:IServiceCollection) =

    let config = context.Configuration

    let connString = config.GetConnectionString "DefaultConnection"


    services.AddDbContext<IdentityDbContext<IdentityUser>>(fun opts ->

        opts.UseNpgsql(connString) |> ignore

        ) |> ignore

并將調(diào)用代碼更改為此(注意Action<_>變?yōu)锳ction<_,_>):


WebHost

    .CreateDefaultBuilder(args)

    .ConfigureServices(Action<_,_> configureServices)

    .Configure(Action<_> configureApp)


查看完整回答
反對(duì) 回復(fù) 2021-09-19
?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

看起來您正在使用一個(gè)Startup類來訪問ConfigureServices(IServiceCollection services)方法中的配置。


如果你從頭開始創(chuàng)建這個(gè)類,它不會(huì)Configuration神奇地有一個(gè)可用的對(duì)象。您需要?jiǎng)?chuàng)建一個(gè)將被注入的構(gòu)造函數(shù),然后在某處存儲(chǔ)對(duì)它的引用。默認(rèn)情況下,它是這樣完成的:


public class Startup

{

    public Startup(IConfiguration configuration)

    {

        Configuration = configuration;

    }


    public IConfiguration Configuration { get; }

}

現(xiàn)在,您可以在類的方法和其他方法中Configuration按預(yù)期使用該屬性ConfigureServices:


public void ConfigureServices(IServiceCollection services)

{

    services.AddDbContextFactory<IdentityDbContext<IdentityUser>>(options =>

        options.UseInMemoryDatabase(

            Configuration.GetConnectionString("MyConnectionStringKey")));

}


查看完整回答
反對(duì) 回復(fù) 2021-09-19
  • 3 回答
  • 0 關(guān)注
  • 357 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)