我很難嘗試調試LINQ to SQL並提交更改。調試LINQ to SQL SubmitChanges()
我一直在使用http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx,這對調試簡單查詢非常有用。
我在DataContext類的工作我從我的應用程序下面的代碼片段項目:
JobMaster newJobToCreate = new JobMaster();
newJobToCreate.JobID = 9999
newJobToCreate.ProjectID = "New Project";
this.UpdateJobMaster(newJobToCreate);
this.SubmitChanges();
我會捕捉一些很奇怪的例外,當我運行this.SubmitChanges;
Index was outside the bounds of the array.
堆棧跟蹤去的地方,我不能踏進:
at System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager`3.TryCreateKeyFromValues(Object[] values, MultiKey`2& k)
at System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache`2.Find(Object[] keyValues)
at System.Data.Linq.IdentityManager.StandardIdentityManager.Find(MetaType type, Object[] keyValues)
at System.Data.Linq.CommonDataServices.GetCachedObject(MetaType type, Object[] keyValues)
at System.Data.Linq.ChangeProcessor.GetOtherItem(MetaAssociation assoc, Object instance)
at System.Data.Linq.ChangeProcessor.BuildEdgeMaps()
at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
at System.Data.Linq.DataContext.SubmitChanges()
at JobTrakDataContext.CreateNewJob(NewJob job, String userName) in D:\JobTrakDataContext.cs:line 1119
沒有人有任何工具或他們使用的技術?我錯過了一些簡單的東西嗎
編輯: 我使用Slace的建議已經安裝.NET調試,但是.NET 3.5的代碼尚未提供:http://referencesource.microsoft.com/netframework.aspx
EDIT2: 我改成InsertOnSubmit按希洛可風式的建議,仍然得到相同的錯誤。
EDIT3: 我已經實現了Sam的建議,嘗試記錄生成的SQL並捕獲ChangeExceptoinException。這些建議沒有多少亮點,當我拋出異常時,我實際上從未真正開始生成SQL。
EDIT4: 我在下面找到了適合我的答案。它只是一個理論,但它已經解決了我目前的問題。
許多客戶端發生此錯誤,只有在裝有Windows XP的機器上,我發現這個熱修復可以解決問題。 [I386](http://hotfixv4.microsoft.com/.NET%20Framework%203.5%20-%20Windows%20Server%202003,%20WindowsXP,%20Windows%20Vista,%20Windows%20Server%202008%20(MSI)/ sp1/DevDiv975687/30729.5821/free/448814_intl_i386_zip.exe)和[x64](http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=963657&kbln=en-us) – gpiccin 2013-05-25 21:12:40