Asp.net IConfiguration不包含Get()的定义(EF7,vNext)
我正在摆弄EntityFramework 7和ASP.NET 5/vNext。我跟着。但是,当我尝试从config.json文件获取连接字符串时,遇到了一个问题:Asp.net IConfiguration不包含Get()的定义(EF7,vNext),asp.net,asp.net-mvc,entity-framework,asp.net-core,Asp.net,Asp.net Mvc,Entity Framework,Asp.net Core,我正在摆弄EntityFramework 7和ASP.NET 5/vNext。我跟着。但是,当我尝试从config.json文件获取连接字符串时,遇到了一个问题: “IConfiguration”不包含“Get”的定义,并且找不到接受“IConfiguration”类型的第一个参数的扩展方法“Get”(是否缺少using指令或程序集引用? 我不认为我遗漏了一个参考,但这里是project.json依赖项部分: "dependencies": { "Microsoft.AspNet.D
“IConfiguration”不包含“Get”的定义,并且找不到接受“IConfiguration”类型的第一个参数的扩展方法“Get”(是否缺少using指令或程序集引用?
我不认为我遗漏了一个参考,但这里是project.json依赖项部分:
"dependencies": {
"Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
"Microsoft.AspNet.Mvc": "6.0.0-beta5",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta5",
"System.Net.Http": "4.0.0-beta-23019",
"Microsoft.AspNet.WebApi": "5.2.3",
"Microsoft.AspNet.WebUtilities": "1.0.0-beta5",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta5",
"Microsoft.Owin.Security": "3.0.1",
"Microsoft.AspNet.Hosting": "1.0.0-beta5",
"Kestrel": "1.0.0-*",
"Microsoft.AspNet.WebApi.Owin": "5.2.3",
"Microsoft.Owin.Security.OAuth": "3.0.1",
"Microsoft.AspNet.Mvc.Core": "6.0.0-beta5",
"Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-beta5",
"Microsoft.AspNet.Identity.Owin": "2.2.1",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta5",
"EntityFramework.SqlServer": "7.0.0-beta8-15186",
"EntityFramework.Commands": "7.0.0-beta5",
"Microsoft.AspNet.Http.Abstractions": "1.0.0-beta8-15078",
"Microsoft.Framework.Logging.Console": "1.0.0-beta8-15086"
}
以下是导致问题的代码(在Startup.cs中):
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddEntityFramework()
.AddSqlServer()文件
.AddDbContext(选项=>
{
使用SQLServer(Configuration.Get(“Data:ConnectionString”);
});
}
Configuration.Get(“Data:ConnectionString”)
位返回上述错误。我已经尽了最大努力将代码与文档示例进行了比较,结果似乎与我完全相同。我不知道Get()方法是从哪里来的
我怎样才能正确地找出我遗漏了什么?不确定这是否准确,但如果您分析该文章的内容,您可以看到该文件需要使用哪些语句
using ContosoBooks.Models;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Diagnostics;
using Microsoft.AspNet.Hosting;
using Microsoft.Data.Entity;
using Microsoft.Framework.Configuration;
using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Logging;
using Microsoft.Framework.Runtime;
如果这不能解决您的问题,那么分析示例可能会解决。看起来像是
IConfiguration.Get()
已在beta5中删除。不确定这是否是最佳选项,但您应该能够使用索引器访问设置。大概是这样的:
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<RibandelleDbContext>(options =>
{
options.UseSqlServer(Configuration["Data:ConnectionString"]);
});
services.AddEntityFramework()
.AddSqlServer()文件
.AddDbContext(选项=>
{
使用SQLServer(配置[“数据:连接字符串]);
});
IConfiguration应该在的“Microsoft.Framework.Configuration.Json”:“1.0.0-beta6”包中使用字符串获取(字符串键)
不过,我不确定是否在beta5
我刚刚使用最新版本进行了测试:
"Microsoft.Framework.Configuration.Json": "1.0.0-beta8-15562"
它也被从那里移除了
根据Peter的评论,您可以通过索引的方式访问json属性
例如:
公营创业
{
公共IConfiguration配置{get;private set;}
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();
string test = Configuration["Data:ConnectionString"]; //this reads the property
}
public void ConfigureServices(IServiceCollection services)
{
//services.AddMvc();
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<RibandelleDbContext>(options =>
{
options.UseSqlServer(Configuration["Data:ConnectionString"]);
});
}
public void Configure(IApplicationBuilder app)
{
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
当我遇到类似的错误时,我只是从框架中删除了dnxcore50
——一些编译错误引用了dnxcore50
"frameworks": {
"dnx451": {
"dependencies": {
"RRStore.EF": "1.0.0-*"
}
},
"dnxcore50": { }
},
我的代码有相同的using语句(当然除了ContosoBooks.Models),很抱歉没有在问题描述中发布此内容。啊,很好!我不知道我们可以这样使用它。作为将来的参考,我自己怎么能想到这一点呢?我感受到了你的痛苦。在代码开发过程中,要跟上API的所有变化是很困难的。我想这是我们为使用测试版软件付出的代价——即使是文档也可以无法跟上代码的当前状态。为了回答您的问题,我通过查看github上IConfiguration.cs的源代码找到了此解决方案。
{
"Data": {
"ConnectionString": "Server=.;Database=Your_Database_Name;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
"frameworks": {
"dnx451": {
"dependencies": {
"RRStore.EF": "1.0.0-*"
}
},
"dnxcore50": { }
},