epv*_*epv 16 json appsettings asp.net-core asp.net-core-1.0
我试图在我的appsettings.json文件中编写我的连接字符串并将其带入我的启动文件但我不断得到一个值不能为空.参数名称:connectionString.我一直在使用各种示例,但似乎无法看到ASP.NET 1.0 Core启动类的这个新设置.
Appsetting.json文件:
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Data Source=server;Initial Catalog=dbase;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试Startup.cs的方法
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();
}
public void ConfigureServices(IServiceCollection services)
{
var connStr = Configuration.GetConnectionString("DefaultConnection");
System.Console.WriteLine(connStr);
services.AddDbContext<DbContext>(options => options.UseSqlServer(connStr)); //error right here -- Null value
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*nJM 34
使用时,我ConnectionString
在 appsettings.json 中的属性名称后遗漏了字母“s”Configuration.GetConnectionString("name")
如果你想复制
"ConnectionStrings ": {
"SpyStore": "Server=(localdb)\\mssqllocaldb;Database=SpyStore;Trusted_Connection=True;MultipleActiveResultSets=true;"
}
Run Code Online (Sandbox Code Playgroud)
方法的措辞GetConnectionString
让我感到困惑,我将鼠标悬停在它上面,哦,它正在寻找ConnectionStrings
属性名称而不是ConnectionString
Gle*_*lls 27
首先,
"Data": {
"ConnectionStrings": {
"DefaultConnection": "Data Source=server;Initial Catalog=dbase;Trusted_Connection=True;MultipleActiveResultSets=true"},
}
Run Code Online (Sandbox Code Playgroud)
与在Visual Studio中添加"Asp.NET配置文件"时获得的结构略有不同.当你这样做,你得到
"ConnectionStrings": {
"DefaultConnection": "Data Source=server;Initial Catalog=dbase;Trusted_Connection=True;MultipleActiveResultSets=true"},
Run Code Online (Sandbox Code Playgroud)
没有"App"JavaScript对象.这就是扩展方法不起作用的原因.它期待这种结构.无论如何你可以使用这个结构(带有"App"的结构)并获得连接字符串,如下所示:
var connectionString = Configuration["Data:ConnectionStrings:DefaultConnection"];
Run Code Online (Sandbox Code Playgroud)
请注意,您使用":"而不是"."来浏览JavaScript对象树.这与使用'.'的一些跨平台问题有关.
如果你编辑出"App":{}你可以这样做:
var connectionString = Configuration["ConnectionStrings:DefaultConnection"];
Run Code Online (Sandbox Code Playgroud)
现在扩展方法将起作用.在封面下面,它与上面的代码相同.
var config2 = Configuration.GetConnectionString("DefaultConnection");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43747 次 |
最近记录: |