2012-03-15 4 views
0

私は、Entity Framework 4.1を使用してDatabase First ApproachでASP.Net MVC 3 Webアプリケーションを構築しています。Entity Frameworkがコントローラを作成できない

は、私は次のように別々のプロジェクトと私の解決策だけでセットアップを持っている:

  1. UI - MVCアプリ
  2. モデル - クラスライブラリ
  3. POCOS - クラスライブラリ
  4. リポジトリ - クラスライブラリ
  5. サービス - クラスライブラリ

私は問題なく前に数回これを設定しているが、私は私のMVCアプリでコントローラを作成しようとすると、今、私は次のエラーを取得する:

Unable to retrieve metadata for 'Entityname'. An item with the same key has already been added. 

を私はして任意のコントローラを追加しようとすると、この問題が発生しましたそのModelクラスのEntity。私はこれで困っている。私はdbからモデルを再作成しようとし、私のPOCOクラスを再生成しましたが、まだこの問題が存在します。

誰でもお手伝いできますか?

ありがとうございました。

+0

エンティティモデルを持つプロジェクト以上のものがありますか?その場合、それぞれのコンテナの名前が異なることを確認する必要があります。私は、既存のデータベースに単一のテーブルを追加したプラグインDLLをいくつか持っていたプロジェクトでこの問題を抱えていました。コピーして貼り付けました。実行時にコンテナ名を変更するまで、このようなエラーが発生しました。 –

+0

@Andras - 私は私のソリューションの中にいくつかのプロジェクトを持っていますが、その中にはモデルが含まれています。他の2つのプロジェクトの両方がモデルを参照しています。しかし、私は何の問題もなくこれを前にしています。 – tgriffiths

+0

ええ、それは問題ありません - 1つのモデルは問題ありません。私は自分のモデルで複数のプロジェクトについて話していました。 –

答えて

1

私はそれを解決しました。 Entity Frameworkがエンティティデータモデルを作成したとき、ナビゲーションプロパティに与えた名前の中には意味がありませんでした。したがって、これらのプロパティを2つ編集しましたが、同じタイプの関連付けで同じ名前の2つの異なるナビゲーションプロパティの名前を付けました。言うまでもなく、EFはこれを好まなかった。私は問題のナビゲーションプロパティの名前を変更しました。モデルからのコンパイルエラーがないので、修正するのは難しいものでした。

関連する問題