web-dev-qa-db-ja.com

データモデルにストアドプロシージャを追加した後、Entity Framework 6を​​構築できません

エンティティフレームワーク6をダウンロードし、新しいプロジェクトを作成してテストしました。現在、EF 5を使用しています。

すべてのテーブルとストアドプロシージャを追加した後、プロジェクトをビルドしようとしましたが、エラーが発生します。

タイプ 'System.Data.Objects.ObjectParameter'の値は、 'System.Data.Entity.Core.Objects.ObjectParameter'に変換できません。

タイプ 'System.Data.Entity.Core.Objects.ObjectResult(Of DataLibrary.MyStoredProc_Result)'の値は、 'System.Data.Objects.ObjectResult(Of DataLibrary.MyStoredProc_Result)'に変換できません。

これがすぐに機能しない理由を理解できません

EF 5にはそのような問題がありました。

私はVS 2012を使用しています。Net4.5 Vb.net(C#プロジェクトでも試されました...同じ問題)

何か案は?

[〜#〜] edit [〜#〜]

答えは、VS 2012用EF6ツールをインストールすることでした。EntityFrameworkパッケージを追加したときにインストールされると思っていたので、これを行う必要があるとは知りませんでした。

42
Eric

元のEFディストリビューション(.NETフレームワークの一部)にまだバインドされているVS2012のEFツールを使用していると思います。 EF6は帯域外配布を使用し、以前のツールでは機能しません。これが、これらの型が少し異なる名前空間を持ち、相互に変換できない理由です。

解決策は、ダウンロードしてインストールする必要があります VS2012用のEF6ツール またはツールを含める必要があるVS2013を使用します。

38
Ladislav Mrnka

以下を置き換えることにより、このシナリオを克服できます。

using System.Data.Objects;

と:

using System.Data.Entity.Core.Objects;

Context.ttファイルなど、T4テンプレートのusingステートメントを更新して、再生成時に自動生成ファイルが引き続き機能するようにする必要がある場合があります。

Before

enter image description here

After

enter image description here

95

私が使用した「Pauly Glott」を使用しました。もう少し詳細な情報については、Microsoftフォーラムでの私の投稿と回答を参照してください。

http://social.msdn.Microsoft.com/Forums/en-US/9ac881f5-18f5-4aa4-bd99-94b1fa4c37c2/why-i-am-getting-errors-like-value-of-type- systemdataobjectsobjectparameter-cannot-be?forum = adodotnetentityframework

1
user3154031