3

TPH (階層ごとのテーブル) 手法を使用して、一連のエンティティをマップしています。

DB スキーマ: 「UserId」、「GroupId」、および「LabelId」の null 許容フィールドといくつかの追加の共通フィールドを持つ UserGroupLabelSpreads テーブル。

DAL オブジェクト: - UserGroupLabelSpread 抽象クラス。- null 以外の UserId のみを持つ識別子を持つ UserSpread。- null 以外の GroupId のみを持つ識別子を持つ GroupSpread。- null 以外の LabelId のみを持つ識別子を持つ LabelSpread。

私はなんとかこれを機能させましたが、UserSpread エンティティを既存の "User" エンティティに接続しようとすると、次のエラーが発生します: エラー 1 エラー 3034: 行 487 から始まるフラグメントのマッピングに問題があります。 554: 異なるキーを持つ 2 つのエンティティが同じ行にマップされています。これらの 2 つのマッピング フラグメントが、重複するキーを持つエンティティの 2 つのグループを同じ行のグループにマップしないようにします。

UserId 列を 2 回マッピングしていることに問題があることを理解するために掘り下げました。1 回目は識別子条件用、2 回目は関連付け用です。

私の仮定は正しいですか?-これを機能させることはできますか?

ありがとう、ニル。

4

1 に答える 1

2

あなたを助けることができるはずのEDMジェネレーターの更新バージョンがあります。これを使用して、生成、検証などを行うことができます。すみません、リンクを間違えました。ここに v2 のものがあります。私はこの問題を抱えていたと思います。私が間違っていなければ、外部キーのマッピングが間違っていたことが原因でした。ただし、当時は EF4 のベータ 1 を使用していたため、プロキシが原因で一部のメッセージが間違っていました。外部キーを確認します。Blog.Id ---> Blog_id が私の問題でした。私は Blog.Id --> Blog.Id そして次に BlogEntry.Id ----> Blog.Blog_Id を持っていましたが、これはもちろん機能しませんが、デザイナーはキーのマッピングに関して寛容ではありません。

于 2009-06-07T13:47:38.053 に答える