2017-01-01 38 views
1

我有一些.NET核心代碼,可以隨機採樣數據對數據庫進行一些批量加載。在.NET/EF核心中批量插入優化

我在本地主機上獲得20次插入/秒,並期待提高我的表現。我做的基本的東西,比如調用_dbContext.SaveChanges()只有一次,等

一些像this帖子表示增益可以通過操縱上的DbContext的配置屬性,如Configuration.AutoDetectChangesEnabledConfiguration.ValidateOnSaveEnabled可以了。

我的.NET核心MVC應用程序的DbContext是IdentityDbContext的子類,它不公開配置。

不知道我應該使用什麼方法 - 我可以/應該搞亂一個IdentityDbContext子類的配置屬性嗎?

或者,我應該爲此使用單獨的DbContext嗎? (一些早期的研究表明典型的模式是一個webapp的單個DbContext)。

回答

1

沒有必要創建單獨DbContext類,你可以把更改跟蹤關閉這樣的:

context.ChangeTracker.AutoDetectChangesEnabled = false;

,或者你可以globaly將其關閉:

public class MyContext : IdentityDbContext 
{ 
    public MyContext() 
    { 
     ChangeTracker.AutoDetectChangesEnabled = false; 
    } 
}