天天看點

在多線程中調用EF的dbContext在每個線程中建立單獨的作用域來獲得dbContext

Ef中 dbContext是單線程的,假設我們有三個線程需要同時進行資料庫的CURD操作。如何在多線程中使用單線程呢?

  • 在每個線程中建立單獨的作用域來獲得dbContext

在每個線程中建立單獨的作用域來獲得dbContext

#簡單示例代碼
for(var i = 0;i<3;i++){
	Task.Factory.StartNew(_myBusiness.DataBaseCURD)
}

# MyBusiness.cs
ctor... 
private readonly IServiceProvider _serviceProvide;
public async Task DataBaseCURD(){
	using var db = _serviceProvide.CreateScope().ServiceProvider.GetService(typeOf(IDbContext));

	//do something...
}

           

繼續閱讀