0

ユーザー管理には EF5 を使用し、 と の間には単純な 1 対多の関係がUsersありPartnersますが、どちらのクラスも自己追跡エンティティ クラスです。

ユーザーパートナー関係

データベースに新しいユーザーを追加する際に、新しいユーザー エンティティを作成し、パートナー エンティティがデータベースに既に存在するかどうかを確認し、それに応じてパートナーを設定します。

var user = new User {
   Partner = userRepository.FirstOrDefault(e => e.PartnerCode == partnerCode) };

ここで、実行すると、プロパティが に設定されたインスタンスに対して が を返すというSaveChanges問題に直面します。ObjectStateManagerObjectStateEntryPartnerStateAdded

ObjectStateEntry

この状態が に設定されている理由は不明です。オブジェクトのプロパティをAddedたどって元のエンティティに移動すると、ステータスが のままであることがわかります。EntityObjectStateEntryUnchanged

ここに画像の説明を入力

これは、パートナー エンティティがデータベースに既に存在する場合でもデータベースに書き込まれるという問題につながり、非常に厄介です。

ここで間違っている可能性のある提案はありますか?

4

0 に答える 0