私はLINQがデータベースにアクセスするときに頭を抱えて、最適な時がどうなっているかを知るのに苦労しています。主に、このUPDATEステートメントは、データベースへの2回のトリップを行っているようです。しかし、LINQには、行の問合せ、更新、および変更の保存が不十分な「更新」はないようです。基本的なSQLでは、私はどこで更新することができるはずです。データベースへの1回のトリップでLINQで更新しますか?
var query = from u in db.users where u.id == 1 select u;
foreach (user u in query)
{
u.name = "JOE";
}
db.Save();
私は保存の魔法を得る。それは私がそれらをコミットする前に複数の変更を加えることができます。しかし、まだ行の最初のクエリがあるようです。
思考?アイデア?
EDIT
今テストし、私は実際には二度のデータベースに行くことがないことを確認することができます。より良い方法が必要です!
Attachはデータベースに接続して、どの行が接続されているかを把握していませんか? – carlbenson
いいえ、それは必要ありません。 'id'が' 1'の 'user'を参照していることが分かります。データベースからフェッチされていないため、(明らかに)オブジェクトから他のプロパティを読み取ることはできません。しかし、あなたが加えた変更は、 'UPDATE'コマンドによって適用されます。 – James
それは素晴らしいです。私は、SQLクエリが実際に何であるかを見るためにブレークポイントで確認できるローカルはありますか? – carlbenson