12

我刚刚使用 EntityFramework Core 和 Scaffold-DbContext NuGet Package Manager Console 命令构建了一堆 POCO 类和一个 DbContext 类。

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

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

4

3 回答 3

40

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

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

于 2017-11-11T00:37:10.977 回答
4

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

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

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

于 2020-02-16T07:31:00.273 回答
2

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

install-package Microsoft.EntityFrameworkCore.SqlServer

这将自动安装

Microsoft.EntityFrameworkCore.Relational
Microsoft.Data.SqlClient
于 2020-07-30T03:13:42.040 回答