5

階層ごとにテーブルを使用する Entity Framework モデルがあります。基本クラスは抽象クラスで、2 つの派生クラスがあります。

これら 2 つの派生クラスと別のクラスの間の関連付けを作成したいと考えています。これらは多対多の関係であるため、結合テーブルを通過します。

最初の関連付けを追加しても問題ありませんが、2 番目の関連付けを追加すると、次のエラーが発生します。

エラー 3034: 行 1074、1082 から始まるフラグメントのマッピングの問題: キーが異なる可能性のある 2 つのエンティティが同じ行にマップされています。これら 2 つのマッピング フラグメントが、AssociationSet の両端を対応する列にマップしていることを確認します。

モデルの関連部分の画像を次に示します (LabelImages と PresetImages の関連付けが問題を引き起こしています)。

代替テキスト

4

1 に答える 1

1

少し遅れましたが、とにかく:

基礎となるデータベースに関連している場合、これは実際には不可能です。エンティティ フレームワークは、実際には 2 つの異なるテーブルが必要ですが、イメージ テーブルと製品テーブルの間の関連付けのために 1 つの結合テーブルを作成します。

データベースの継承階層に別のオプションを使用することをお勧めします。または、サブタイプではなく、イメージと製品の間の関係を設定します。product クラスにメソッドを追加して、特定のタイプ (presetimages 用、labelimages 用) でフィルタリングできます。または、コンテキスト クラスにメソッドを追加して、OfTypeを使用して製品の特定の種類の画像を取得します。

于 2011-07-18T08:20:21.537 に答える