Tag: submitchanges

在简单语句中未找到或更改LINQ C#错误的行

首先,这不是一个多用户问题,因为我在本地数据库的开发版本上工作。 当我执行db.SubmitChanges()时,我得到了不太明显的Row not found or changed错误。 如果我在SubmitChanges()发生之前中断执行,我可以检入SQL Server Management Studio并且该行确实存在! 这是整个函数的代码,只是为任何想要帮助的人提供上下文,但问题行在最后(第48行)。 更新这是一个非常奇怪的错误:错误是由更新matchingTrans.Url引起的(请参阅倒数第二行代码)。 注释掉这一行并不会引发错误 – 即使匹配的Trans.Title仍然得到更新。 private static void MenuItemUpdate(int languageId, NavigationItem item) { using (var db = DataContextFactory.Create()) { // Select existing menu item from database. var dbItem = (from i in db.MenuItems where i.Id == item.Id select i).Single(); // Obtain ID of link type. […]

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

DataContext的例外情况

我一直在互联网上搜索,但我似乎无法找到它。 DataContext可以抛出哪些exception? 或者更具体地说,DataContext.SubmitChanges()方法抛出什么exception? 编辑 作为参考,这里列出了可能由L2S DataContext引发的已知exception: SQLEXCEPTION ChangeConflictException DuplicateKeyException ForeignKeyReferenceAlreadyHasValueException OutOfMemoryException(未正确处理DataContext时)

如何从LINQ DataContext.SubmitChanges()获取TSQL查询

我正在使用Linq to SQL。 我有一个DataContext,我就是.SubmitChanges()。 插入标识字段时出错,我希望看到它用于插入此标识字段的查询。 我在快速监视器中看不到查询本身; 我在哪里可以从调试器中找到它?