PropertyBuilder<T> 不包含 HasColumnType 的定义

PropertyBuilder<T> Does Not Contain A Definition For HasColumnType

我刚刚建立了一堆 POCO classes 和一个 DbContext class 利用 EntityFramework Core 和 Scaffold-DbContext NuGet 包管理器控制台命令。

它生成了一堆代码,其中大部分都很好,除了有几个编译器找不到的对 HasColumnType 和 HasName 方法的调用。不幸的是,VS2017 也没有帮助我找到它们。我通过 NuGet 包管理器安装了 EntityFramework 核心,我认为所有依赖项都已正确安装,但事实并非如此。我试过用谷歌搜索 HasColumnType 的命名空间,但一直找不到它。

有人可以告诉我我缺少什么命名空间或 NuGet 包吗?

这些扩展位于 Microsoft.EntityFrameworkCore.Relational 包中,因为它们对关系数据库建模很有用。

https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Relational/

我也有同样的疑问。根据此 Microsoft 文档 link https://docs.microsoft.com/en-us/ef/core/providers/,您需要添加特定的数据库提供程序 nuget 包,例如 Microsoft.EntityFrameworkCore.SqlServer.

关系数据库的 EF Core 提供程序构建在通用 Microsoft.EntityFrameworkCore.Relational 库之上,该库提供用于配置 table 和列映射、外键约束等的 API。提供程序通常作为 NuGet 包分发.

所以不需要添加两个包,添加更具体的包 Microsoft.EntityFrameworkCore.SqlServer 对我有用。

在包管理器控制台中点击这个命令

install-package Microsoft.EntityFrameworkCore.SqlServer

这将自动安装

Microsoft.EntityFrameworkCore.Relational
Microsoft.Data.SqlClient