外部キー フィールドを更新しようとして、問題が発生しました。
record.ForeignId = newId;
をスローするSQLMetalコードが原因で、「オブジェクトの現在の状態のため、操作は無効です」と爆撃しますSystem.Data.Linq.ForeignKeyReferenceAlreadyHasValueException()
。
この問題に遭遇したのは私が初めてではありません。
LinqToSQLエラー : オブジェクトの現在の状態が原因で操作が有効ではありません。 、 とりわけ。
彼らの解決策はこれです:
record.Foreign = Database.Foreigns.Single(c => c.Id == newId);
それはもちろん、私がすでに知っている ID を持つオブジェクトを取得するためだけに、Foreign での DB ルックアップを引き起こします! では、無意味なクエリ (または、これらの FK が多数ある場合はクエリ) を使用せずに、この更新を行うにはどうすればよいでしょうか?