【发布时间】:2016-04-29 14:33:51
【问题描述】:
我有一个用于实体框架的新 ASP.net 5 dnx 类库。我需要以 EF 6 为目标,因为我需要的某些功能不在 EF 7 中。
首先,EF 工具(如 enable-migration)不存在。我添加了一个老式类库并安装了 EF 6,现在命令就在那里。
当我运行启用迁移时,我收到此错误:
PM> 启用迁移
使用“2”个参数调用“SetData”的异常:“类型 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' 在程序集'Microsoft.VisualStudio.ProjectSystem.VS.Implementation, 版本=14.1.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a' 是 未标记为可序列化。”在 D:\Projects\Rebus\FMS\Code\Current\FMSSupport\FMSSupport\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:720 字符:5 + $domain.SetData('startUpProject', $startUpProject) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException +fullyQualifiedErrorId:SerializationException System.NullReferenceException:对象引用未设置为实例 的一个对象。在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(项目 项目,Int32 shellVersion)在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(项目 项目)在 System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(字符串 configurationTypeName, Boolean useContextWorkingDirectory) 在 System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(字符串 contextTypeName) 在 System.Data.Entity.Migrations.EnableMigrationsCommand.c__DisplayClass2.<.ctor>b__0() 在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作 command) 对象引用未设置为对象的实例。
我尝试了不同的启用迁移选项,例如指定启动项目或 contextTypeName。
有什么想法吗?
【问题讨论】:
-
我用一个普通的 ASP.NET 项目得到了这个......
-
呵呵,“启动”引起了我的注意。我将 web 项目设置为启动项目,然后它工作了:D
-
您找到解决方案了吗?我想要 EFCore 目前不支持的 ComplexType 支持。 ATM 我正在考虑必须手动展开复杂类型才能使用 EFCore :(
-
@Raskolnikov 这个问题并不是很有用。 DNX 已经死了。您应该使用 .NET Core CLI 升级到 ASP.NET Core 的发布版本。项目格式发生了很大变化,这使得这个问题的答案与任何事情都无关紧要,因为工具不再存在并且你无法重现任何东西。
-
.Net Core 1.0 上的同样问题
标签: c# asp.net-core entity-framework-6 dnx project.json