2013-10-18 7 views
9

F#プロジェクトのいくつかにEntity Framework 6.0.1をインストールすることはできません。NuGetからEF 6をF#プロジェクトにインストールする

スクリプトファイル 'C:\ source \ payboard \ PayboardWeb \ packages \ EntityFramework.6.0.1 \ tools \ install.ps1'を実行しています。 アセンブリの 'FSharp.ProjectSystem.Base、Version = 12.0.0.0、Culture = neutral、 に「Microsoft.VisualStudio.FSharp.ProjectSystem.Automation.OAProject」と入力すると、「2」引数を含む「SetData」例外が呼び出されます。 PublicKeyToken = b03f5f7f11d50a3a 'はシリアル化可能としてマークされていません。 Cで :\ソース\ payboard \ PayboardWeb \パッケージ\ EntityFramework.6.0.1 \ツール\ EntityFramework.psm1:633文字:5 + $ domain.SetData( 'プロジェクト'、$プロジェクト) + ~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) []、MethodInvocationException + FullyQualifiedErrorId:SerializationException

System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(アクションコマンド)

でSystem.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand.Executeで () EF6にそれのためのオープンなバグがありますように思えフォーラム(https://entityframework.codeplex.com/workitem/891)でも、私の言う限りでは、それは何の愛も得ていません。

EF6は、F#以外のプロジェクトでうまくインストールされます。

推奨される対処方法はありますか?

+0

私は、MSが「Microsoft.VisualStudio.FSharp.ProjectSystem.Automation.OAProject」タイプをシリアライズ可能に変更するまであなたは大したことはないと思います。 F#のユーザーボイスサイトでいつでもこの問題を提出して、それがもっと愛を感じるかどうかを確認することができます。私は、EFチームが何かを基本言語で修正できるかどうか疑問に思う。 –

+1

EFチームの次の記事のコメントを読んだ場合、チームの誰かがEFがいつF#をサポートするかについての質問に多少答えます。それが助けになるかどうかわからないが、それは少なくとも正式な承認である。 http://blogs.msdn.com/b/adonet/archive/2013/10/31/ef6-performance-issues.aspx –

+0

@ ScottWylieのリンクを掘り、[作業項目891](https:// entityframework。 codeplex.com/workitem/891)を参照してください。 F#はEFの次のバージョンで動作するようです。 –

答えて

5

これはEF6.1でブロックされなくなりました。 Hereが作業項目です。

ここでの問題はEF自体ではなく、パッケージがプロジェクトに追加されていることです。これにより、EF6.1がリリースされるまでは、パッケージを解凍してEF6アセンブリへの参照をプロジェクトに手動で追加することで、この問題を回避できます。それに応じて設定を更新する必要があります。 (また、一時的なC#プロジェクトを作成して、F#プロジェクトにコピーできるEntityFrameworkとEntityFramework.SqlServerのDLLを提供するEF6 NuGetパッケージを追加することもできます。また、コピーできる設定ファイルも、

+0

私はデータベースのすべてのことを行うC#プロジェクトを作成しようとしていましたが、データベースをクエリしようとすると、web.configが正しく設定されていないため、EFはMySQLサーバーに到達できませんでしたそのC#プロジェクトはうまくいきました。これは私が試すことです:app.configからweb.configに関連するすべてのEF設定を転送しますが、あなたのソリューションは試してみる価値があるようです。ここであなたの50ポイントは笑です。 –

+1

NuGetパッケージは、デフォルトでSqlServerプロバイダをインストールし、SqlServer用にアプリケーションを構成します。MySqlを使用する場合は、MySqlプロバイダをインストールし、コンフィグレーションファイルのプロバイダ登録を変更する必要があります。 – Pawel

+0

ええ、私はそれをしましたが、設定ファイルが別のプロジェクトにあったので、EFはそれに到達できませんでした。 –

関連する問題