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