ユーザー管理には EF5 を使用し、 と の間には単純な 1 対多の関係がUsers
ありPartners
ますが、どちらのクラスも自己追跡エンティティ クラスです。
データベースに新しいユーザーを追加する際に、新しいユーザー エンティティを作成し、パートナー エンティティがデータベースに既に存在するかどうかを確認し、それに応じてパートナーを設定します。
var user = new User {
Partner = userRepository.FirstOrDefault(e => e.PartnerCode == partnerCode) };
ここで、実行すると、プロパティが に設定されたインスタンスに対して が を返すというSaveChanges
問題に直面します。ObjectStateManager
ObjectStateEntry
Partner
State
Added
この状態が に設定されている理由は不明です。オブジェクトのプロパティをAdded
たどって元のエンティティに移動すると、ステータスが のままであることがわかります。Entity
ObjectStateEntry
Unchanged
これは、パートナー エンティティがデータベースに既に存在する場合でもデータベースに書き込まれるという問題につながり、非常に厄介です。
ここで間違っている可能性のある提案はありますか?