【问题标题】:EF Core 1.1 Migration - The current CSharpHelper cannot scaffold literals of typeEF Core 1.1 迁移 - 当前的 CSharpHelper 无法构建类型的文字
【发布时间】:2016-12-16 02:07:35
【问题描述】:

这似乎是一个非常晦涩难懂的错误,我什至不知道从哪里开始......

当前的 CSharpHelper 无法构建类型的文字 'System.Func`3 [Microsoft.EntityFrameworkCore.Metadata.IProperty,Microsoft.EntityFrameworkCore.Metadata.IEntityType,Microsoft.EntityFrameworkCore.ValueGeneration.ValueGenerator]'。 配置您的服务以使用可以使用的服务。

当我运行时发生这种情况

dotnet ef migrations add initial

更新 1 - 基于 Rob 的问题

应用程序的架构使用丰富的域模型,因此有一些“解决方法”可以让封装集合和 Jimmy Bogard 的类型化枚举模式正常工作。

每个领域模型对象在数据访问层都有自己的EntityTypeBuilder 类,所有这些都是从DbContext 中的OnModelCreating 调用的。这些还会向Console 输出一些信息,因此我可以看到构建器没有导致任何错误(此时都没有)。

DbContext 只为聚合根实体公开DbSet,或者换句话说,只公开具有相应存储库类的实体。域模型对象的其余部分是导航属性,因此不需要通过DbContext 公开DbSet

平台细节(据我所知)

  • .NET Core 1.1(运行时 + SDK)
  • EF Core 1.1
  • Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final
  • Microsoft.EntityFrameworkCore.Design 1.0.0-preview2-final

【问题讨论】:

  • 你的模型定义是什么?
  • @Rob,我不确定我是否完全理解你的问题?
  • 抱歉 - 我的意思是,快速一目了然,它似乎无法为您的模型搭建脚手架。也就是说,它将根据您的内存模型生成 SQL 表。您将在上下文类中定义它们。类似:DBSet<Person> People { get; set; }Person 可能暴露了 EF 无法转换为 SQL 类型的属性类型。
  • @Rob 我已经更新了我的问题,希望能对您的最后一个问题有所了解。

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


【解决方案1】:

您使用的是 .NET Core 1.1 运行时,但使用的是旧工具包(您应该使用最新的工具,截至目前它是 preview4,仍处于 alpha,与运行时相反 - 是的,一开始不是很直观

总之,这是一个Known Issue

"tools": {
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4"
}
  • 您可能需要也可能不需要通过使用 src 文件夹上方的 global.json 来修复 SDK 版本,该文件夹应包含您的代码 explained in Hanselman's blog

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-1-003177"
  }
}

编辑:只是为了给你一个更完整的答案,这就是我的 project.json 和我的示例项目的样子(全部在 VS Code 中完成):

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.EntityFrameworkCore": "1.1.0-preview1-final",
    "Microsoft.EntityFrameworkCore.Design": "1.1.0-preview1-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0-preview1-final",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0-preview1-final",
  },
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": "dnxcore50"
    }
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final"
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    相关资源
    最近更新 更多