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")));
}

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)

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")));
}
- 3 回答
- 0 關(guān)注
- 357 瀏覽
添加回答
舉報(bào)