Tôi đang gặp khó khăn khi cố gắng gỡ lỗi LINQ to SQL và gửi các thay đổi.Gỡ lỗi LINQ to SQL SubmitChanges()
Tôi đã sử dụng http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx, hoạt động tuyệt vời để gỡ lỗi các truy vấn đơn giản.
Tôi đang làm việc trong lớp DataContext cho dự án của tôi với đoạn sau đây từ ứng dụng của tôi:
JobMaster newJobToCreate = new JobMaster();
newJobToCreate.JobID = 9999
newJobToCreate.ProjectID = "New Project";
this.UpdateJobMaster(newJobToCreate);
this.SubmitChanges();
tôi sẽ bắt một số trường hợp ngoại lệ rất kỳ quặc khi tôi chạy this.SubmitChanges;
Index was outside the bounds of the array.
Các vết đống đi những nơi tôi không thể bước vào:
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
Có ai có bất kỳ công cụ hay kỹ thuật mà họ sử dụng không? Tôi thiếu một cái gì đó đơn giản?
EDIT: tôi đã thiết lập .net debugging sử dụng gợi ý Slace, tuy nhiên mã .net 3.5 là chưa có sẵn: http://referencesource.microsoft.com/netframework.aspx
EDIT2: Tôi đã thay đổi để InsertOnSubmit theo của sirrocco gợi ý, vẫn nhận được lỗi tương tự.
EDIT3: Tôi đã triển khai các đề xuất của Sam đang cố gắng ghi nhật ký SQL được tạo và nắm bắt được ChangeExceptoinException. Những gợi ý này không làm sáng tỏ thêm chút nào, tôi chưa bao giờ thực sự tạo ra SQL khi ngoại lệ của tôi bị ném ra.
EDIT4: Tôi tìm thấy câu trả lời phù hợp với tôi bên dưới. Nó chỉ là một lý thuyết nhưng nó đã cố định vấn đề hiện tại của tôi.
Lỗi này xảy ra với nhiều khách hàng, chỉ trên máy có Windows XP, tôi tìm thấy bản sửa lỗi nóng này đã giải quyết được sự cố. [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/miễn phí/448814_intl_i386_zip.exe) và [x64] (http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=963657&kbln=en-us) – gpiccin