Мне очень трудно пытаться отлаживать LINQ to SQL и отправлять изменения.
Я использовал 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();
Я поймаю некоторые очень странные исключения при запуске этого. 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
Есть ли у кого-нибудь инструменты или методы, которые они используют? Я скучаю по чему-то простому?
EDIT :
Я настроил отладку .net по предложению Slace, однако код .net 3.5 пока недоступен: http://referencesource.microsoft.com/netframework.aspx
EDIT2 :
Я изменил на InsertOnSubmit согласно предложению sirrocco, все еще получая ту же ошибку.
EDIT3:
Я реализовал предложения Сэма, пытаясь записать сгенерированный SQL и поймать исключение ChangeExceptoinException. Эти предложения не проливают больше света, я никогда не получаю генерировать SQL, когда выдается мое исключение.
EDIT4:
Я нашел ответ, который работает для меня ниже. Это просто теория, но она исправила мою текущую проблему.