2016-12-16 115 views
1

的支架文字这似乎是一个很模糊的错误,我甚至不知道从哪里开始使用它......EF核心1.1的迁移 - 当前CSharpHelper不能键入

目前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,或者换句话说,只有具有相应存储库类的实体。其余的域模型对象是导航属性,因此不需要DbSet通过DbContext公开。

平台细节(据我所知)

  • .NET 1.1的核心(运行时间+ SDK)
  • EF核心1.1
  • Microsoft.EntityFrameworkCore.Tools 1.0.0 preview2-最终
  • Microsoft.EntityFrameworkCore.Design 1.0.0-preview2决赛
+0

你定义的模型是什么? – Rob

+0

@Rob,我不确定我完全理解你的问题? – series0ne

+0

对不起 - 我的意思是,快速*看起来,它似乎没有脚手架模型。也就是说,它会根据您的内存模型生成SQL表。你会在你的上下文类中定义它们。像这样:'DBSet People {get;组; }'。 'Person'可能会暴露EF无法转换为SQL类型的属性类型。 – Rob

回答

4

您正在使用.NET 1.1核心运行,但旧的工具包(SH你·乌尔德·采用最新的工具,因为这个日期是preview4,仍处于阿尔法,违背了运行时 - 是的,在第一

总之不是很直观,这是一个Known Issue

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

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

编辑:只给你一个更完整的答案,这是我project.json和我的样本项目看起来像(所有VS代码完成):

{ 
    "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" 
    } 
} 

VS Code Project Layout