Asp.net IServiceCollection不包含AddNpgsql的定义或扩展
我第一次尝试使用PostgreSQL,但在构建它时遇到了一点麻烦,除非我锁定到RC2包中,这很好。锁定RC2软件包后,我有一个错误,我似乎无法摆脱,我可以使用帮助进行故障排除: 错误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
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");
}
}