【发布时间】: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