ナビゲーションプロパティの変更を検出しません名前と住所の両方のプロパティが割り当てられたPerson型のオブジェクト。私の問題は、データベースからPersonオブジェクトをフェッチして、Addressプロパティ(Nullなど)を変更した場合、e.f.変更を検出しません! 私のコードはこれです:Entity Frameworkのは、私は、ナビゲーションプロパティの変更を検出してトラブルを抱えている
using (var ctx = new EFContext())
{
Person p = ctx.People.First();
//p.Address IS NOT NULL!
p.Address = null;
var entry = ctx.Entry(p);
}
なぜentry.State
変わらないのですか?
編集: SaveChangesを呼び出すと、レコードが正しく保存されます(アドレスはnullになります)。
編集2:私は外部キープロパティをビリーとして提案しました。ビジュアルスタジオのPersonオブジェクトを検査すると状態は変更されます。オブジェクトの値を検査するデバッガで停止しないと、状態は変わらない!
編集3: ctx.People.Include(x => x.Address).First();を使用してPersonオブジェクトを読み込みます。問題を解決します。 Includeを呼び出してAddressIdプロパティの代わりにAddressプロパティを変更し続ける方法はありますか?
ctx.DetectChanges()を呼び出すとどうなりますか? – Maarten
何もありません。結果は同じです!! – Mones