オブジェクトが存在しない子レコードへの参照を持っている場合、オブジェクトの子を更新できません。例えば。テーブル Car と CarColor には関係があります。Car.CarColorId >> CarColor.CarColorId 車にカラー レコードをロードすると、次のようになります。
var result = from x in database.Car.Include("CarColor")
where x.CarId = 5
select x;
Car オブジェクトを取得します。これは Color オブジェクトです。少し前に CarColor が削除されたが、問題の Car レコードにはまだ CarColorId 値が含まれているとします。したがって、クエリを実行すると、CarColor レコードが存在しなかったため、Color オブジェクトは null になります。ここでの問題は、存在する別の Color オブジェクトをアタッチすると、ストアの更新が発生し、保存時にエラーが挿入されることです。
Car.Color = newColor
Database.SaveChanges();
コンテキストが存在しない色を削除しようとしているようです。どうすればこれを回避できますか?