【问题标题】:'DbContextOptionsBuilder' does not contain a definition for UseNpgsql()“DbContextOptionsBuilder”不包含 UseNpgsql() 的定义
【发布时间】:2018-03-05 18:25:10
【问题描述】:

我在通过 Startup.cs 的 ConfigureServices 方法中的 AddDbContext() 方法提供连接字符串以使其连接到 PostgreSQL 时遇到问题

我在调用函数 options.UseNpgsql() 时遇到此错误 (见下图)。

我已经看到其他关于此的问题,但这些问题是针对 usesqlserver() 的,而且它们也没有解决我的问题。

【问题讨论】:

  • 您是否缺少 using 语句或程序集引用?你读错了吗?
  • 是的,我已经检查过了。我已经添加了所有必要的 using 语句。还有其他我错过的吗?
  • @DavidG 是的,我已经检查了该答案并添加了那些使用但仍然相同的错误。
  • 你有提到Npgsql.EntityFrameworkCore.PostgreSQL Nuget 包吗?

标签: c# entity-framework asp.net-core-mvc asp.net-core-2.0


【解决方案1】:

要检查两件事:

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

    using Microsoft.EntityFrameworkCore;
    

【讨论】:

  • 我已经完成了这两件事,但仍然遇到同样的问题......我猜这与使用这些的 5.X 版有关?编辑:通过保存对 NuGet 包的更改来解决(您可以通过重新启动 Visual Studio 来做到这一点)
  • 对于那些看得太快的人:这是 Npgsql.EntityFrameworkCore nuget 包,而不是您需要添加的 Microsoft.EntityFrameworkCore 包...
【解决方案2】:

我通过检查所有这 3 个包都已安装解决了这个问题:

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

第三个是我的应用程序的问题。它没有安装。 当您的代码需要时,不要忘记为这些包中的任何一个添加引用。

【讨论】:

    猜你喜欢
    • 2017-11-25
    • 2017-03-13
    • 2021-08-03
    • 2017-09-30
    • 2018-04-11
    • 2021-12-17
    • 2017-08-05
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多