我使用了插入代码 - 向下“ - 将示例数据插入到MS SQL DB中。 其中一个表 - 'downown' - (最后一个表插入'Records')有大插入,它在调试模式下需要5分钟但是当我尝试启动项目而没有调试时,表在DB和IIS-express中是空的没有抛出错误
数据有超过36,000行和超过40列
我假设可能是因为“连接超时”
所以我试图寻找一个解决方案,找到两个没有一个解决方案:
Persist Security Info=False;Connect Timeout=1000;
public MainContext()
{
//base.Database.SetCommandTimeout(1000);
}
从https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore/Models/SampleData.cs修改
private static async Task AddOrUpdateAsync<TEntity>(
IServiceProvider serviceProvider,
Func<TEntity, object> propertyToMatch,
IEnumerable<TEntity> entities)
where TEntity : class
{
Exception exp = null;
using (var scope = serviceProvider
.GetRequiredService<IServiceScopeFactory>()
.CreateScope())
using (var db = scope
.ServiceProvider
.GetService<MainContext>())
using (var transaction = db.Database.BeginTransaction())
{
try
{
db.ChangeTracker.AutoDetectChangesEnabled = false;
db.Set<TEntity>().AddRange(entities);
db.SaveChanges();
transaction.Commit();
}
catch (Exception ex)
{
exp = ex;
throw ex;
}
}
if (exp != null)
{
throw exp;
}
}