我使用的BindingSource實體框架,當我打電話EntityContext.SaveChange()需要較長的時間,在第一次調用
EntityContext.SaveChange();
它需要更多的時間來執行那麼接下來的時間我添加新對象綁定源,然後調用SaveChanges();方法
編輯2
詳細說明:
在負載形式事件
BindingSource.DataSource = EntityContext.Table;
添加新按鈕
BindingSource.AddNew();
Table m_object= (Table)BindingSource.Current;
m_object.ID = Guid.NewGuid();
其他對象數據被使用綁定控件編輯到其屬性
然後保存按鈕
BindingSource.EndEdit();
Stopwatch sw = new Stopwatch();
sw.Start();
EntityContext.SaveChanges();
sw.Stop();
Console.WriteLine(sw.Elapsed.ToString());
如果我重複添加和保存好幾次,我得到下面的輸出:
00:00:01.0788243
00:00:00.0316786
00:00:00.0292763
00:00:00.0298630
00:00:00.1127312
這是值得注意的是,第一添加和保存操作需要將近秒多那麼接下來的時間我添加和保存。
我在問題中添加了詳細信息,關於時間上的差異,您是指SaveChanges()調用的調用之間還有多少時間,還有您的意思是** AutoGrowing ** – major 2012-04-18 00:33:16
@major它會是如果您可以量化'您需要更多時間來執行然後再次調用',那麼第一次調用saveChange需要多長時間,第二次調用saveChange需要多少時間? SQL自動增長功能可以即時擴展您的數據庫,以便您可以在其中添加更多內容。這通常由插入語句觸發。看看這裏瞭解autogrow http://www.simple-talk.com/sql/database-administration/sql-server-database-growth-and-autogrowth-settings/ – 2012-04-18 01:18:25
@major也看看我的編輯,很可能第二次點擊保存時,實際上並沒有任何更改要保存,或者它的更新更快。 – 2012-04-18 01:22:22