2017-05-31 10 views
0

私のテーブルに500 - 1,000のデータがあるとしましょう。レコードを更新する際に速度の点ではるかに優れた性能であるクエリLinqの更新とSQLの更新のパフォーマンス

LINQ

(from a in db.Person 
    select a).ToList().ForEach(x => x.PersonName = "Juan"); 
db.SaveChanges(); 

SQL

UPDATE dbo.Person 
SET PersonName = Juan; 

?。

答えて

2

明らかに、生の更新はより速くなります。 ToList()はデータセットをマテリアライズします(読み込まれるようになります)。更新はあなたのエンティティの変更を追跡することも、追跡しないこともありますが、デフォルトでは変更されます。それから、それをもう一度送り返す。

このアップデートはデータベースで動作します。

ToList()がないと、近くになることがあります。