TSQLにデータベースがあり、.NET 3.5 の ADO.NET Entity Frameworkを使用して一致するエンティティを作成しています。
データベースでは関係はモデル化されていませんが、関係に含まれる各テーブルには、別のテーブルの主キーへの外部キーを表すフィールドがあります。
たとえば、次のようにします ( aProduct
はカテゴリを 1 つだけ持つことができると仮定します):
Product ( ProdId(PK), ProdName, CatId(FK))
Category (CatId(PK), CatName)
もちろん、この方法では参照整合性の制約はありません。
私のアプリケーションでは、データベースから EF エンティティを生成し、リレーションシップとそのマッピングを手動で追加します。1 対多の関係を除いて、すべてがスムーズに進みます。
多対多の関係に指定されたマッピング(関連付けテーブルを介して) は、 1対多の関係に指定されたもので、いかなる種類のエラーも発生しません。
エラー 3007: フラグメントのマッピングの問題: 列 [foreign_key] が両方のフラグメントで異なる概念的なサイド プロパティにマッピングされています。
マッピングを確認し、カーディナリティと方向を変更しましたが、それでも機能しません。
外部キーを削除する必要があることをインターネットで読みましたが、データベース内の値をどのようにマッピングできますか? 他の解決策はありますか?
重要: .NET 4.0 を使用できません。.NET 3.5 を使用する必要があります。