这似乎是一个非常晦涩的错误,我什至不知道从哪里开始......
The current CSharpHelper cannot scaffold literals of type 'System.Func`3[Microsoft.EntityFrameworkCore.Metadata.IProperty,Microsoft.EntityFrameworkCore.Metadata.IEntityType,Microsoft.EntityFrameworkCore.ValueGeneration.ValueGenerator]'. Configure your services to use one that can.
这是我运行时发生的
dotnet ef migrations add initial
更新 1 - 基于 Rob 的问题
应用程序的体系结构使用丰富的域模型,因此有一些“解决方法”可以使封装集合和 Jimmy Bogard 的类型化枚举模式等功能正常工作。
每个域模型对象在数据访问层中都有自己的 EntityTypeBuilder
类,所有这些类都是从 DbContext
中的 OnModelCreating
调用的。这些还会向控制台输出一些信息,因此我可以看到构建器没有导致任何错误(此时没有任何错误)。
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
最佳答案
您正在使用 .NET Core 1.1 运行时,但使用旧的工具包(您应该使用最新的工具,截至目前它是 preview4,仍处于 alpha/em>,与运行时相反 - 是的,一开始不太直观)
总而言之,这是一个 Known Issue
- 更新您的 project.json 以使用 preview4,如 Announcing Entity Framework Core 1.1 中所述
"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"
}
}
关于c# - EF Core 1.1 迁移 - 当前的 CSharpHelper 无法构建类型文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176240/