我在Visual Studio 2017中有.NET Core 2项目。我正在尝试添加(Postgresql)数据库连接。这是一个代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
// Add framework services.
services.AddMvc();
}
但是编译器抱怨这条消息:
IServiceCollection不包含“AddDbContext”的定义 没有扩展方法'AddDbContext'接受第一个参数 类型'IServiceCollection'可以找到(你错过了使用 指令或程序集引用?)
我安装了NuGet包Npgsql。我还尝试安装NuGet包EntityFramework,但我收到错误:
包恢复失败。回滚“MyProject”的包更改。
这是我问题的根源吗?我应该安装其他一些库吗?
在这个question程序中使用了AddEntityFramework()和AddEntityFrameworkNpgsql(),但我的项目中的编译器也无法识别这两个程序。
答案 0 :(得分:1)
我安装了Npgsql.EntityFrameworkCore.PostgreSQL并解决了我的问题。我还使用了Danijel的建议:
services.AddDbContext<ClassDbContextName>(options =>
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
答案 1 :(得分:1)
确保以正确的版本安装了相关的NuGet软件包
Microsoft.EntityFrameworkCore v3
并使用正确的名称空间,例如
使用Microsoft.EntityFrameworkCore;
使用Microsoft.Extensions.DependencyInjection;
答案 2 :(得分:0)
使用Microsoft.Extensions.DependencyInjection添加为我解决了此问题。
答案 3 :(得分:0)
解决方案非常简单,您只需在正确的文件中安装 microsoft.entityframeworkcore nuget 包。然后安装后,智能帮助选项将对您可见。
答案 4 :(得分:0)
我在使用 Sqlite 时遇到了这个问题。
这解决了我的问题。
答案 5 :(得分:-1)
我认为这对ansewr最好尝试
services.AddDbContext(options => options.UseNpgsql(Configuration.GetConnectionString(“ DefaultConnection”)))
答案 6 :(得分:-2)
请你试试这个
services.AddDbContext<ClassDbContextName>(options =>
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));