Asp.net IServiceCollection不包含AddNpgsql的定义或扩展

Asp.net IServiceCollection不包含AddNpgsql的定义或扩展,asp.net,postgresql,asp.net-core,entity-framework-core,Asp.net,Postgresql,Asp.net Core,Entity Framework Core,我第一次尝试使用PostgreSQL,但在构建它时遇到了一点麻烦,除非我锁定到RC2包中,这很好。锁定RC2软件包后,我有一个错误,我似乎无法摆脱,我可以使用帮助进行故障排除: 错误 Startup.cs(22,18): error CS1061: 'IServiceCollection' does not contain a definition for 'AddNpgsql' and no extension method 'AddNpgsql' accepting a first argu

我第一次尝试使用PostgreSQL,但在构建它时遇到了一点麻烦,除非我锁定到RC2包中,这很好。锁定RC2软件包后,我有一个错误,我似乎无法摆脱,我可以使用帮助进行故障排除:

错误

Startup.cs(22,18): error CS1061: 'IServiceCollection' does not contain a definition for 'AddNpgsql' and no extension method 'AddNpgsql' accepting a first argument of type 'IServiceCollection' could be found (are you missing a using directive or an assembly reference?)
PROJECT.JSON

{
  "buildOptions": {
    "preserveCompilationContext": true,
    "emitEntryPoint": true,
    "warningsAsErrors": true,
    "debugType": "portable",

  "copyToOutput": {
      "include": [
        "wwwroot",
        "Views",
        "config.json",
        "web.config"
      ]
    }
  },

  "dependencies": {
    "AspNet.Security.OAuth.Introspection": "1.0.0-alpha1-final",
    "AspNet.Security.OAuth.Validation": "1.0.0-alpha1-final",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc.Cors": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",

    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",

    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.Commands": "1.0.0-rc2-*",
    "Microsoft.EntityFrameworkCore.Relational": "1.0.0-rc2-final",
    "Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.0-*",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",

    "OpenIddict.Core": "1.0.0-*",
    "OpenIddict.EF": "1.0.0-*"
  },


  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0-rc2-3002702"
        }
      },

      "imports": [
        "dnxcore50",
        "portable-net451+win8"
      ]
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+wp80+win8+wpa81+dnxcore50"
    }
  },

  "scripts": {
    "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "config.json",
      "web.config"
    ]
  }
}
STARTUP.CS(部分)

public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddEntityFramework()
.AddNpgsql()
.AddDbContext(选项=>
UseNpgsql(“主机=localhost;用户名=dev;密码=dev;数据库=tesdb”);
服务.额外性()
.AddEntityFrameworkStores()
.AddUserStore()
.AddDefaultTokenProviders()
.AddOpenIddictCore
(conf=>conf.UseEntityFramework());
services.AddAuthorization(选项=>{
options.AddPolicy(“默认”,builder=>{
builder.RequireAuthenticatedUser();
builder.RequireActiveUser();
});
options.DefaultPolicy=options.GetPolicy(“默认”);
});
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.addScope();
}

RC2驱动程序将
AddNpgsql
替换为
AddEntityFrameworkNpgsql
,因此 替换此代码块:

services.AddEntityFramework()
    .AddNpgsql()
    .AddDbContext<ApplicationContext>(options =>
        options.UseNpgsql("Host=localhost;Username=dev;Password=dev;Database=tesdb"));
services.AddEntityFramework()
.AddNpgsql()
.AddDbContext(选项=>
UseNpgsql(“主机=localhost;用户名=dev;密码=dev;数据库=tesdb”);
关于这一点:

services.AddEntityFrameworkNpgsql()
    .AddDbContext<ApplicationContext>(options => 
        options.UseNpgsql("Host=localhost;Username=dev;Password=dev;Database=tesdb"));
services.AddEntityFrameworkNpgsql()
.AddDbContext(选项=>
UseNpgsql(“主机=localhost;用户名=dev;密码=dev;数据库=tesdb”);

在EF Core 1.1中,您需要使用以下代码:

public class Startup
{
    //...

    public void ConfigureServices(IServiceCollection services)
    {
       //...
       services.AddEntityFrameworkNpgsql();
    }
}

public class Startup
{
    //...

    public void ConfigureServices(IServiceCollection services)
    {
       //...
       services.AddEntityFrameworkNpgsql();
    }
}
public class DatabaseClass : DbContext 
{
    //...

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseNpgsql("my connection string");
    }
}