Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF 6与dnx项目_C#_Asp.net Core_Entity Framework 6_Dnx_Project.json - Fatal编程技术网

C# EF 6与dnx项目

C# EF 6与dnx项目,c#,asp.net-core,entity-framework-6,dnx,project.json,C#,Asp.net Core,Entity Framework 6,Dnx,Project.json,我有一个新的ASP.net 5 dnx类库,用于实体框架。我需要以EF6为目标,因为我需要的一些功能不在EF7中 首先,EF工具(如启用迁移)不存在。我添加了一个老式类库并安装了EF6,现在命令就在那里了 运行“启用迁移”时,会出现以下错误: PM>启用迁移 使用“2”参数调用“SetData”时出现异常:“Type” 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' 在程序

我有一个新的ASP.net 5 dnx类库,用于实体框架。我需要以EF6为目标,因为我需要的一些功能不在EF7中

首先,EF工具(如启用迁移)不存在。我添加了一个老式类库并安装了EF6,现在命令就在那里了

运行“启用迁移”时,会出现以下错误:

PM>启用迁移

使用“2”参数调用“SetData”时出现异常:“Type” 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' 在程序集“Microsoft.VisualStudio.ProjectSystem.VS.实现”中, 版本=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,布尔值useContextWorkingDirectory)位于 System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(字符串 contextTypeName)位于 System.Data.Entity.Migrations.enableMigationsCommand.c__DisplayClass2.b__0() 在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作 命令)对象引用未设置为对象的实例

我尝试了不同的启用迁移选项,例如指定启动项目或contextTypeName


有什么想法吗?

这是因为ASP.NET Core引入了一个新的项目类型/配置系统(请参阅),而旧的EF工具不知道如何使用新的系统(project.json)。如果您想回到EF6,那么创建一个新项目并将代码移植到其中可能是最简单的

有趣的是(事实上令人失望的是),他们正在回溯project.json。请参见:

接下来,EF6数据项目应该使用现有的.NET Framework类库csproj类型


即使在遵循这些建议之后,我仍然会遇到同样的错误。卸载ASP.NET核心项目,然后在相应的csproj上调用
启用迁移
命令,应该可以执行该命令。通过右键单击.NET核心项目并选择“卸载项目”选项,可以卸载项目。还应注意,PackageManager控制台窗口有一个“Default project:”下拉选择。您应该选择带有DbContext的项目。

我也有同样的问题。只需将启动项目从ASP.NET Core设置为我的.NET Framework库就可以了=)现在我可以像往常一样执行EF6迁移“添加迁移”命令


顺便说一句,我的英文很抱歉。

我是通过一个普通的ASP.NET项目得到这个消息的……呵呵,“启动”吸引了我的眼球。我将web项目设置为启动项目,然后它就工作了:DDI您找到了解决方案吗?我想要EFCore目前不支持的ComplexType支持。ATM为了使用EFCore,我正在考虑必须手动解开complextypes:(@Raskolnikov)这个问题不是很有用。DNX已经死了。你应该用.NET Core CLI升级到ASP.NET Core的发行版。项目格式发生了很大变化,这使得这个问题的答案与任何东西都无关,因为工具不再存在,你无法复制任何东西。在.NET Core上也存在同样的问题1