我在 C#中有一个程序,它从4个来源(2个excel表,oracle和访问数据库)下载数据并相互计算。在结果中我有一些很大的结果,我将结果保存在List中。结果中的行数大约等于120.000。一行大约10MB。结果将插入到访问数据库中。
如何将此列表插入我的数据库?有人能举个例子吗?
现在我逐行将行插入表中。这花了我大约3个小时。
答案 0 :(得分:2)
使用某种批量插入物。如果你的使用实体框架与你的db这样的东西是你需要的。最大限度地延长超时时间。
using (var transactionScope = new System.Transactions.TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
{
try
{
ctx.BulkInsert(productsToSync, new BulkInsertOptions()
{
TimeOut = 10 * 60 * 1000
});
await ctx.SaveChangesAsync();
}
catch (Exception ex)
{
SystemLogManager.AddDataSyncErrorLog(ex);
}
finally
{
transactionScope.Complete();
}
}