【问题标题】:PropertyBuilder<T> Does Not Contain A Definition For HasColumnTypePropertyBuilder<T> 不包含 HasColumnType 的定义
【发布时间】:2017-11-11 00:20:07
【问题描述】:

我刚刚使用 EntityFramework Core 和 Scaffold-DbContext NuGet 包管理器控制台命令构建了一堆 POCO 类和一个 DbContext 类。

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

谁能告诉我我缺少什么命名空间或 NuGet 包?

【问题讨论】:

  • Microsoft.EntityFrameworkCore.SqlServer 如果你使用的是 sql server

标签: c# entity-framework-core fluent-entity-framework


【解决方案1】:

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

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

【讨论】:

  • 谢谢先生。与您切线相关的问题:如果这是通过 Scaffold-DbContext 生成 EntityFrameworkCore DB 代码所必需的,您知道为什么它没有被标记为 Microsoft.EntityFrameworkCore 包本身的依赖项,因此是通过 NuGet 与 Microsoft.EntityFrameworkCore 一起下载的?
  • 运行 Scaffold-DbContext 应该安装的包是 EFCore.Design 和提供程序包。两者都将引入 EFCore 包和 EFCore.Relational 包
  • 这是我为 HasFilter() 方法 docs.microsoft.com/en-us/dotnet/api/… 缺少的包
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    install-package Microsoft.EntityFrameworkCore.SqlServer
    

    这将自动安装

    Microsoft.EntityFrameworkCore.Relational
    Microsoft.Data.SqlClient
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      相关资源
      最近更新 更多