如何获取LINQtoSQLsubmitchanges的百分比?我想知道是否还有其他人问过类似的问题。基本上,我有一个巨大的树,我正在使用LINQ对象在RAM中构建它,然后我使用DataContext.SubmitChanges()一次性将其转储。它有效,但我找不到如何向用户直观地指示查询到目前为止的进展情况。如果我最终可以实现某种进度条,那会很棒,即使性能损失很小。请注意,我有相当多的行要放入数据库中,超过750,000行。我没有准确计时,但确实需要很长时间才能让他们进来。编辑:我想我最好先解释一下我在做什么。基本上,我正在用指环王构建一个后缀树。因此,有很多节点,有些节点有一个与之关联的位置(恰好在后缀末尾的节点)。我正在按照这些思路构建Linq对象。suffixTreeDB.NodeObjs.InsertOnSubmit(newNodeObj(){NodeID=0,ParentID=0,Path="$"});在RAM中完全生成后缀树后(仅几秒钟),我调用suffixTreeDB.submitChanges();我想知道的是是否有更快的方法来做到这一点。谢谢!编辑2:我做了一个秒表,显然数据库写入需要6分钟。我建议您将正在拨打的电话分开,因为它们是在不同的单独电话中发送的。这也将减少事务的大小(linq在调用submitchanges时这样做)。如果将它们分成10个块,每块75.000,您可以按1/10比例给出粗略估计。更新1:在重新阅读您的帖子和您的新评论后,我认为您应该看看SqlBulkCopy。如果您需要改善操作时间,那就是解决之道。检查这个相关的问题/答案:What'sthefastestwaytobulkinsertlargeamountsofdatainSQLServer(C#client)=newActionTextWriter(s=>{if(s.StartsWith("INSERTINTO"))insertsCount++;ReportProgress(insertsCount);});更多信息在我的博客http://epandzo.wordpress.com/2011/01/02/linq-to-sql-ctx-submitchanges-progress/和stackoverflow问题LINQtoSQLSubmitChangess()progressThisisnotideal,butyou可以创建另一个线程,定期查询您正在填充的表,以计算已插入的记录数。我不知道如果您在事务中运行,这将如何/是否有效,因为可能存在锁定/等。我真的认为我需要的是一种批量插入的形式,但看起来Linq不支持它。以上就是C#学习教程:如何获取LINQtoSQLsubmitchanges的百分比?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
