我们正在使用webApi作为我们最新的产品之一,这些产品托管在IIS7.5上并用ASP.NET5(.Net Core)编写。
在早期的Web应用程序中,可以更改windows-Explorer中web.config
中的连接字符串,而在IIS上运行的网站使用web.config
文件中的ConnectionString。
现代WebAPI仍然可以(我有ConnectionString insite appsettings.json
)吗?我没有在IIS或File-Explorer中找到解决方案,并且使用Environment-Variables不符合我们的需求。
我们需要在几个数据库实例之间切换,因此非常欢迎基于文件的非常轻松的解决方案。
PS:我们正在使用EntityFrameworkCore(又名EF7)Database-First,因为它是一个位于我们当前数据库之上的新工具。
答案 0 :(得分:0)
您可以使用其中一个配置源(包括JSON,由AddJsonFile()
包中的Microsoft.Extensions.Configuration.Json
访问)来读取设置文件,然后使用从那里读取的值来配置EF。
示例代码可能如下所示:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
有关详细信息,请参阅Configuration in ASP.NET Core docs或this answer。