Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net IConfiguration不包含Get()的定义(EF7,vNext)_Asp.net_Asp.net Mvc_Entity Framework_Asp.net Core - Fatal编程技术网

Asp.net IConfiguration不包含Get()的定义(EF7,vNext)

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

我正在摆弄EntityFramework 7和ASP.NET 5/vNext。我跟着。但是,当我尝试从config.json文件获取连接字符串时,遇到了一个问题:

“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": { }
},