在调用DbContext.SaveChanges()时,检查是否有要保存的更改是否对性能有好处?例如:
if (context.ChangeTracker.HasChanges())
context.SaveChanges()或者这是EF在调用SaveChanges()时在内部执行的那种检查?
发布于 2017-05-31 16:35:39
在内部,EF进行检查以确定是否进行了更改,如果没有更改,它将不会提交任何内容(因此不会浪费资源)。
发布于 2017-06-02 21:02:33
我希望这能帮到你
Stopwatch sw = new Stopwatch();
Stopwatch sw2 = new Stopwatch();
sw.Start();
var b = db.ChangeTracker.HasChanges();
sw.Stop();
sw2.Start();
var c = db.SaveChanges();
sw2.Stop();
Console.WriteLine("Elapsed(HasChanges)={0}", sw.Elapsed); //takes 0.0000889 miliseconds
Console.WriteLine("Elapsed(SaveChanges)={0}", sw2.Elapsed); // takes 0.0003563 miliseconds
Console.ReadLine();
https://stackoverflow.com/questions/44279445
复制相似问题