早上好,关于Program.cs.中的这个小构建器片段,我只想问一个简单的问题
builder.Services.AddDbContext<SteelworksContext>(options =>
{
if (builder.Environment.IsDevelopment())
{
options.UseSqlServer(builder.Configuration.GetConnectionString("SteelworksDev")); //from appsettings.Development
}
else
{
options.UseSqlServer(builder.Configuration.GetConnectionString("Steelworks")); //from appsettings
}
});
该代码是否意味着,如果条件为true,则从appsettings读取连接字符串。开发还是像往常一样只从应用程序设置中读取?
这取决于如何将配置设置加载到程序中,但这是一个合理的假设。
您应该查看加载配置设置的代码(这可能在Startup
类中,但取决于您的项目(。
仅供参考:看起来连接字符串在appsettings&appsettings。开发配置文件。这是不必要的,并且在一定程度上违背了拥有这两个文件的意义。两个文件应该只有相同的连接字符串名称,例如"Steelworks"
,并且只有一行代码设置DbContext
:
options.UseSqlServer(builder.Configuration.GetConnectionString("Steelworks"));