現在、スタートアップでは、次のようなSQLサーバー文字列があります。
public void ConfigureServices(IServiceCollection services)
{
var connection = @"Server=servername;Database=database;Trusted_Connection=True;MultipleActiveResultSets=true";
services.AddDbContext<CRAMSContext>(options => options.UseSqlServer(connection));
}
Appsettings.jsonの内容を使用するにはどうすればよいですか:
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Data Source=server;Initial Catalog=database;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
新しいASP.NET 1.0 COREの新しいセットアップで次のように表示するには、次のようにパラメーター化されます。
public void ConfigureServices(IServiceCollection services)
{
var connection2 = new SqlConnection connectionString;
services.AddDbContext<CRAMSContext>(options => options.UseSqlServer(connection2));
}
また、テスト用とqa用に異なるデータベースがある場合、ASP.NETアプリに各環境で接続を使用することを知らせるにはどうすればよいですか?
私のスタートアップクラスはすでにルートで次のように定義されています。
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
接続文字列に適切な構造を使用します。
{
"ConnectionStrings": {
"DefaultConnection": "xxx"
}
}
Startup.csでのアクセス:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));