私のDBMSには、1対多の関係(A <-B)を持つ2つのテーブルがあります。最初の実行時に、次のようにA(Bを含む)のいくつかのレコードを取得しました。
var lst = from a in ctx.As.Include("Bs") select a;
だから、すべてが大丈夫です。しかし、数分後、他のアプリで変更される可能性があるため、もう一度取得したいと思います。
使ってみました
ctx.Refresh(RefreshMode.StoreWins, lst);
これを行うと、更新されるのはAではなくBからのオブジェクトだけです。したがって、次のような別の手順を実行する必要があります。
foreach (var a in lst) {
ctx.Refresh(RefreshMode.StoreWins, a.Bs);
}
Bs
linqステートメントに含めなくても、Load
代わりにメソッドを使用しても問題ありません。Refresh
ここでの問題は、呼び出しが多すぎるRefresh
かLoad
、パフォーマンスが低下する可能性があることです。それほど多くの呼び出しを行わずに、データベースストレージからそれらを再ロードするにはどうすればよいですか?
ありがとう!