在执行SqlBulkCopy时出现未处理的异常

时间:2014-03-24 13:10:09

标签: c# entity-framework

我在任务计划程序中配置了一个控制台应用程序。

控制台应用程序使用SqlBulkCopy通过从csv文件中读取数据将数据插入到sql表中。

问题是作业随机抛出异常,我无法使用try catch捕获。

然而,它会以以下方式登录到事件查看器中:

Application: ApplicationName.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info:  System.Data.Entity.Infrastructure.DbUpdateException
Stack:
   at System.Data.Entity.Internal.InternalContext.SaveChanges()
   at System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
   at System.Data.Entity.DbContext.SaveChanges()
   at SDO.Repository.Repository`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SaveChanges()
   at SDO.Business.SolutionDB.SolverProcess.ProcessConsoleOutput(System.Object, System.Diagnostics.DataReceivedEventArgs)
   at System.Diagnostics.Process.OutputReadNotifyUser(System.String)
   at System.Diagnostics.AsyncStreamReader.FlushMessageQueue()
   at System.Diagnostics.AsyncStreamReader.ReadBuffer(System.IAsyncResult)
   at System.IO.Stream+ReadWriteTask.InvokeAsyncCallback(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.IO.Stream+ReadWriteTask.System.Threading.Tasks.ITaskCompletionAction.Invoke(System.Threading.Tasks.Task)
   at System.Threading.Tasks.Task.FinishContinuations()
   at System.Threading.Tasks.Task.FinishStageThree()
   at System.Threading.Tasks.Task.FinishStageTwo()
   at System.Threading.Tasks.Task.Finish(Boolean)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
   at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
   at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

此时任务调度程序工作陷入困境。 仅供参考我是使用实体框架6数据库的第一种方法。 当我们在一个表中插入超过30k的数据时,我采用了SqlBulkCopy方法,并且表现非常好。然而,这是我们面临的唯一问题。

0 个答案:

没有答案