Hyp*_*ate 6 c# json connection-string asp.net-core-mvc asp.net-core
信息
我的解决方案中有多个项目,其中一个是DAL,另一个是ASP.NET MVC6项目.由于MVC6项目也是启动项目,我需要在那里添加我的连接字符串.
我看到了这个解决方案,但它不被接受,也没有用.
我的尝试
appsettings.json
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=.\\SQLEXPRESS;Database=Bar;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"FooBar": {
"ConnectionString": "Server=.\\SQLEXPRESS;Database=Bar;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]))
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:FooBar:ConnectionString"]));
}
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试使用FooBar连接字符串访问数据时,我收到以下消息:
"附加信息:在应用程序配置文件中找不到名为'FooBar'的连接字符串."
问题
如何让多个连接字符串工作?
如果你看看asp.net核心中连接字符串的官方文档,他们的例子显示了appsettings.json这样存储的连接字符串
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}
Run Code Online (Sandbox Code Playgroud)
哪个,适应你的例子就会变成.
{
"ConnectionStrings": {
"DefaultConnection": "Server=.\\SQLEXPRESS;Database=Bar;Trusted_Connection=True;MultipleActiveResultSets=true",
"FooBar": "Server=.\\SQLEXPRESS;Database=Bar;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs使用从配置中读取的配置字符串配置上下文将使用GetConnectionString()带有配置键的方法
public void ConfigureServices(IServiceCollection services) {
// Add framework services.
services
.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnextionString("DefaultConnection")))
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnextionString("FooBar")));
}
Run Code Online (Sandbox Code Playgroud)
现在,在原始问题中如何配置上述上下文的一个观察问题是,现在有两个连接字符串用于相同的上下文.
尝试使用多个连接字符串来处理相同的上下文会导致问题,因为框架在请求上下文时不知道使用哪个选项.
| 归档时间: |
|
| 查看次数: |
6946 次 |
| 最近记录: |