MVC3 Web アプリケーションで Entity Framework 4.1 を使用しています。私は、約 200 以上のテーブルを持つデータベースを使用してレガシ アプリケーションを書き直す任務を負っており、既にデータが配置されているため、EF でデータベース ファーストのアプローチを採用しています。
アプリ全体に対して 1 つの巨大な edmx モデルを作成するのは悪い習慣であることは理解していますが、何時間もの調査の後、共通テーブルを再利用する方法がわからないため、前進する方法について明確な方向性を得ることができません。複数のモデルで。しかし、モデルをより小さく、扱いやすいコンテキストに分割したいと考えています。
2 つのモデルに共通テーブル (Users など) を配置すると、プロジェクトは次の形式でコンパイル エラーをスローします。
タイプ 'Project.Models.EntityX' には既に 'EntityX_PropertyY' の定義が含まれています
私が見つけた回避策に最も近いのは、http: //connect.microsoft.com/VisualStudio/feedback/details/366721/entity-framework-the-type-xxx-already-contains-a-definition-for-です。バツ
Microsoft によって 2008 年 9 月 17 日午後 5 時 18 分に投稿されました。
この問題は仕様によるものです。回避策は、モデルを別のフォルダーに配置するか (C# および ASP.NET プロジェクトの場合)、カスタム ツールの名前空間を設定することです (C# および VB プロジェクトの場合)。
これは'08年にさかのぼります。どちらのオプションも機能しませんでした。複数のモデルで同じテーブルを使用できるようにプロジェクトを設計するためのより良い方法があるかどうか疑問に思っています。