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++; });