【问题标题】:DbContextOptionsBuilder does not Contain a Definition for UseSQLServer after 5.0.11 UpgradeDbContextOptionsBuilder 在 5.0.11 升级后不包含 UseSQLServer 的定义
【发布时间】:2021-12-17 03:17:45
【问题描述】:

今天,我们将 EntityFrameworkCore 的 Nuget 包更新到了​​ 5.0.11 版。不幸的是,这似乎弄乱了我的 VS 环境。每当我尝试编译时,都会收到错误消息:Severity Code Description Project File Line Suppression State Error CS1061 'DbContextOptionsBuilder' does not contain a definition for 'UseSqlServer' and no accessible extension method 'UseSqlServer' accepting a first argument of type 'DbContextOptionsBuilder' could be found (are you missing a using directive or an assembly reference?)

升级后Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools 都匹配5.0.11 版本。

我尝试降级回 5.0.7,但这并没有解决问题。重新启动计算机不起作用。重新启动 Visual Studio 2019 也没有。我确实清理并重建了项目,但也保留了相同的错误消息。该项目确实引用了using Microsoft.EntityFrameworkCore;,它列在我的 .csproj 文件中。感谢任何其他解决此问题的建议。

编辑:我应该说这只发生在我的机器上,所以它更多的是环境问题。除了升级 nuget 包之外,没有进行其他更改。我确实升级回 5.0.11,它与 .csproj 文件中的内容相匹配。想知道这是否也发生在其他人身上。

【问题讨论】:

  • 只要您有对Microsoft.EntityFrameworkCore.SqlServer 的包引用并且正在导入Microsoft.EntityFrameworkCore 命名空间,这就是您所需要的。我会尝试重启 VS、重启、检查 .NET SDK 是否正确安装等。如果你从命令行执行 dotnet build 是否有效?
  • 尝试手动删除所有项目中的所有BinObj 目录。还有package.vs 目录,如果你有的话。包升级后我经常需要。
  • 感谢您的帮助! @JHBonarius 你的建议是从所有项目中删除 Bin 和 Obj 文件夹并重建工作。介意将其发布为答案,以便我接受吗?非常感谢您的帮助!

标签: asp.net-core entity-framework-core dbcontext


【解决方案1】:

根据经验,我知道仅清理构建并不能删除所有内容。特别是在升级依赖项(包)时,通常需要手动删除(所有)项目的BinObj 目录。

在某些情况下,还需要从(所有)项目和解决方案中删除 .vspackages 目录。当解决方案在 VS 中打开时不要这样做。

【讨论】:

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