LINQ to SQL SubmitChangess()进度

我正在使用LINQ to SQL将旧的DBF文件导入MSSQL。 我正在读取所有行并使用ctx.MyTable.InsertOnSubmit(row)将它们添加到数据库

读完阶段完成后,我有大约100 000个待处理插入。 ctx.SubmitChanges()自然需要很长时间。

有没有办法跟踪ctx.submitchanges()进度? ctx.Log可以以某种方式用于此目的吗?

更新 :是否可以使用ctx.GetChangeSet().Inserts.Count并使用Log跟踪插入语句?

ctx.SubmitChanges()划分为较小的块对我来说不起作用,因为我需要事务,全部或全部。

更新2:我发现了一个很好的类ActionTextWriter,我将尝试计算插入数。

http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers

更新3:

我已经构建了第一个代码原型,它没有进行优化。 它似乎工作:)

 ctx.Log = new ActionTextWriter(s => { counter += s.Split(' ').Count(w => w.ToUpper() == "INSERT"); ReportProgress(counter); }); 

我通过解析日志和使用ActionTextWriter成功地获得了进展

http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers

 ctx.Log = new ActionTextWriter(s => { if (s.StartsWith("INSERT INTO")) insertsCount++; });