从NuGet获取EF 6以在F#项目上安装

时间:2013-10-18 23:39:08

标签: entity-framework f# nuget visual-studio-2013

我似乎无法在我拥有的几个F#项目上安装Entity Framework 6.0.1。这是我得到的错误消息:

  

执行脚本文件' C:\ source \ payboard \ PayboardWeb \ packages \ EntityFramework.6.0.1 \ tools \ install.ps1'。   异常调用" SetData"用" 2"参数:" Type' Microsoft.VisualStudio.FSharp.ProjectSystem.Automation.OAProject'在汇编' FSharp.ProjectSystem.Base,Version = 12.0.0.0,Culture = neutral,   公钥= b03f5f7f11d50a3a'没有标记为可序列化。"   在C:\ source \ payboard \ PayboardWeb \ packages \ EntityFramework.6.0.1 \ tools \ EntityFramework.psm1:633 char:5   + $ domain.SetData(' project',$ Project)   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:NotSpecified:(:) [],MethodInvocationException       + FullyQualifiedErrorId:SerializationException

     

System.NullReferenceException:未将对象引用设置为对象的实例。     在System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand.Execute()     在System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作命令)

在EF6论坛(https://entityframework.codeplex.com/workitem/891)上似乎有一个公开的错误,但据我所知,它还没有得到任何爱。

EF6在非F#项目上安装得很好。

任何建议的解决方法?

1 个答案:

答案 0 :(得分:5)

这在EF6.1中被解除阻止。 Here是工作项目。

请注意,此处的问题不是EF本身,而是如何将程序包添加到项目中。这让我想到,在EF6.1发布之前,您可以通过解压缩包并手动向项目添加对EF6程序集的引用来解决此问题。然后你必须相应地更新你的配置。 (你也可以创建一个临时C#项目添加EF6 NuGet包,它将为你提供你可以复制到你的F#项目的EntityFramework和EntityFramework.SqlServer dll,以及你可以从中复制的配置文件比使用它更容易正确的配置)