【问题标题】:DbContext Issues Upgrading from .NET Core 1 to .NET 5从 .NET Core 1 升级到 .NET 5 的 DbContext 问题
【发布时间】:2022-03-22 22:10:32
【问题描述】:

我有一个在 .NET Core 1 上运行的旧程序,并希望让它与 .NET 5 一起使用。我决定创建一个新的解决方案,而不是逐步升级每个版本的繁琐过程刮。这样做,我可以从旧项目中复制大部分文件。

我的问题在于 DbContext 类。

public partial class ClassName : DbContext

自始至终都有许多错误,但每个错误都给了我相同(或相似)的建议来解决它们,与缺少使用参考有关。

The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?) Cannot resolve symbol 'DbContext'

现在,我知道我缺少 using Microsoft.EntityFrameworkCore; 参考。因此,当我将该包添加到项目中时,我的文件发生了变化,现在我收到了大约 500 个错误(大约是文件中的一半)。

这些新错误的一些示例如下:

entity.HasKey(e => e.Id)
  .HasName("PK");
    
entity.ToTable("TB");

在上面的 sn-p 中,.HasName 正在抛出错误 'KeyBuilder' does not contain a definition for 'HasName' and no accessible extension method 'HasName' accepting a first argument of type 'KeyBuilder'.

作为一个刚接触实体框架的人,我是否遗漏了一些明显的东西,或者我应该重新搭建数据库以重新创建这些上下文文件?

【问题讨论】:

  • 您还需要添加Microsoft.EntityFrameworkCore.Relational NuGet 包。
  • 尝试添加Microsoft.EntityFrameworkCore.Relational 或为您的具体数据库类型添加一个。
  • 感谢您的回复。添加它解决了这些问题,并在我的解决方案中消除了大约 1400 个错误。再次感谢!
  • 您可能会认为逐步进行是乏味的,但它通常可以让您一次处理几个问题,而不是让自己设置数百个错误来查看和解决哪些是真正的问题。
  • @Damien_The_Unbeliever,我明白了。但是从 1.x -> 2.0 -> 2.1 -> 2.2 -> 3.0 -> 3.1 -> 5.0 真的是这种情况下的最佳选择吗?我的路径基于 Microsoft 文档中的指南。如果我使用的是 3.0 或 3.1,我可以看到每个版本,但来自 1.0 的差异很大。

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


【解决方案1】:

这里还没有答案,所以有人可能会错过 cmets 实际上拥有答案。

正如@Kirk Larkin 在对该问题的评论中所说,解决方案是添加Microsoft.EntityFrameworkCore.Relational 包。

【讨论】:

    猜你喜欢
    • 2017-07-05
    • 2018-08-03
    • 2011-02-17
    • 2018-02-13
    • 2019-06-14
    • 2021-05-14
    • 2022-06-13
    • 1970-01-01
    • 2019-07-10
    相关资源
    最近更新 更多