Entity Framework でエラー 3007 が発生したときの対処法メモ

ADO.NET Entity Data Model (edmx) でアソシエーションを手動で追加した場合、「エラー 3007」が発生することがあります。意外とはまりやすい気がするので、対処法をメモしておきます。

以下のようなエラーが発生することがあります。

エラー 11008: アソシエーション 'DepartmentsEmployees' はマップされていません。 TestEntity.edmx

エラー 3007: 行 76, 86 から始まるマッピング フラグメントで問題が発生しました: 主キー以外の列 [DepartmentID] が両方のフラグメントで異なる概念側のプロパティにマップされています。対応する概念側のプロパティは個別に変更できるため、データの一貫性が損なわれる可能性があります。
Entity.edmx

これを解決するには、スカラ プロパティから重複した項目を削除します。以上の手順でエラーが解決するので、リビルドしてください。

  1. アソシエーションのマップを作成
  2. 作成したマップが「ナビゲーション プロパティ」に追加される
  3. 追加された項目と同項目を「スカラ プロパティ」から削除

エラー 3007 の日本語がちょっとわかりにくいですよね。どう操作すれば直るかもついでに書いてくれればいいのに (^^;)