Entity Framework 4.3 で作成された次のモデルを想定しています: http://www.dumpyourphoto.com/files4/122585/bI2uq9a.png
我々は持っています:
- ロケーションエンティティ
- 立地のある会社
- 関係:ロケーションには 0..1 社が含まれます。Location エンティティは、設計内のさらに多くのエンティティで使用されるため、この選択が必要です。
- カスケード削除: 会社が削除されると、対応する場所も削除する必要があります。
ここで問題が発生します。このモデルからデータベースを生成すると、Entity Framework がポップアップして次のエラー メッセージが表示されます。
http://www.dumpyourphoto.com/files4/122586/bgOPaZwqL.png
エラーメッセージを翻訳すると、次のようになります。
"End Company on relationship Model1.Store.CompanyLocation cannot have operation specified since its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'."
調査の結果、エンティティ フレームワークが次のデータベースを生成するため (カスケード削除なし)、これは実際には不可能であることがわかりました 。
エンティティ フレームワークは少しごまかしているため、カスケード削除は実際には実行できません。エンティティに両方のナビゲーション プロパティを保持しながら、外部キーを 1 つだけ生成します。
これは完全に賢明で正しいデータベースですが、問題を引き起こします。このカスケード削除が必要ですが、データベース内の他のオブジェクトが会社と同じ方法で場所エンティティを使用するため、0..1 の関係も必要です。これに対する解決策、またはこれを回避する方法についてのアドバイスはありますか?