"DbContextOptionsBuilder"没有包含"UseNpgsql()"的定义。

25

在Startup.cs的ConfigureServices方法中使用AddDbContext()方法时,我遇到了将连接字符串提供给PostgreSQL进行连接的问题。

在调用options.UseNpgsql()函数时,我遇到了以下错误(请参见下面的图像)。

我已经看到了其他关于usesqlserver()的问题,但它们并没有解决我的问题。

enter image description here


你是否缺少了using语句或程序集引用?你读过错误信息吗? - mason
像这样吗?https://dev59.com/WqPia4cB1Zd3GeqPxmF6 - DavidG
是的,我已经检查过了。我已经添加了所有必要的using语句。还有其他我错过的吗? - Karthik Saxena
@DavidG 是的,我已经检查了那个答案并添加了使用它们,但仍然出现相同的错误。 - Karthik Saxena
2
你是否有Npgsql.EntityFrameworkCore.PostgreSQL Nuget包的参考资料? - DavidG
哦,是的...我漏掉了引用,怎么可能没看到呢。非常感谢@DavidG,它起作用了。 :) - Karthik Saxena
3个回答

59

两件事情需要检查:

  1. 你是否缺少对Npgsql.EntityFrameworkCore.PostgreSQL Nuget包的引用?
  2. 你是否缺少正确的导入。 UseNpgsql()扩展方法在Microsoft.EntityFrameworkCore命名空间中,这意味着你应该有这一行代码:

using Microsoft.EntityFrameworkCore;

2
我已经做了这两件事情,但仍然存在相同的问题... 我猜想这与使用版本5.X有关?编辑:通过保存NuGet包中的更改解决了该问题(可以通过重新启动Visual Studio来完成此操作)。 - David Montgomery
2
对于那些过于匆忙的人:这是 Npgsql.EntityFrameworkCore nuget 包,而不是你需要添加的 Microsoft.EntityFrameworkCore 包... - Andreas Forslöw
1
谢谢Andreas,我解决了安装Npgsql.EntityFrameworkCore时遇到的问题,但我甚至没有将其导入到代码中。很奇怪。 - Tim's

8

我通过检查这三个包是否安装来解决了这个问题:

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore   
Npgsql.EntityFrameworkCore.PostgreSQL

第三个包是我的应用程序的问题,它没有安装。 在代码中需要引用这些包时,请不要忘记添加参考。


0
我必须安装以下软件包: NuGet\Install-Package Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime -Version 8.0.0-preview.4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接