我有一些.NET Core代码可以使用随机样本数据对DB进行一些批量加载。
我在localhost上获得20次插入/秒,并希望提高我的性能。我正在做基本的事情,比如只调用一次_dbContext.SaveChanges()
等等。
许多帖子如this表示可以通过操纵DbContext配置中的属性来获得收益,例如Configuration.AutoDetectChangesEnabled
和Configuration.ValidateOnSaveEnabled
。
我的.NET Core MVC应用程序的DbContext是IdentityDbContext
的子类,它不公开配置。
不确定我应该使用什么方法 - 我是否应该弄乱IdentityDbContext子类的配置属性?
或者,我应该为此使用单独的DbContext吗? (一些早期的研究表明,典型模式是webapp的单个DbContext)。
答案 0 :(得分:2)
无需创建单独的DbContext
课程,您可以关闭更改跟踪:
context.ChangeTracker.AutoDetectChangesEnabled = false;
或者你可以将它全局关闭:
public class MyContext : IdentityDbContext
{
public MyContext()
{
ChangeTracker.AutoDetectChangesEnabled = false;
}
}