我正在使用EntityFramework核心将新记录添加到表中 如下:
public void AddAudit(Audit audit)
{
foodStoreDBContext.Audits.Add(audit);
foodStoreDBContext.SaveChanges();
}
。当执行此语句没有引起任何问题,但是当我尝试使用并发请求进行测试(大约10个并发请求)重复执行100次时,将显示异常: “此sqltransaction已完成;它不再可用。”
我在Scope中注册了DatabaseContext类:
services.AddScoped<IAuditRepository, AuditRepository>();
即使我更改为AddTransiant,仍然遇到问题。
其中一项建议是启用“失败重试”:
the configuration I am using are :
options.UseSqlServer(
Configuration["Data:FoodSave:ConnectionString"],sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.EnableRetryOnFailure(
maxRetryCount: 10,
maxRetryDelay: TimeSpan.FromSeconds(30),
errorNumbersToAdd: null);
})
,但上面仍然有相同的错误。 请帮助