changedirector.update(TrackedObject item)抛出null引用异常

时间:2018-03-30 14:11:51

标签: c# linq linq-to-sql

当在互联网上查找此错误时,我得到一个接近我得到的错误的点击。可在此处找到:https://social.msdn.microsoft.com/Forums/en-US/8ab51524-e8d5-4eb3-acba-4ff024142e57/nullreferenceexception-in-getupdatecommand-during-submitchanges-call?forum=linqtosql

此人提供的解决方案是重写代码,但在这种情况下,这不是一个真正的选项。

所以会发生的是我使用linq to sql打开一个新的datacontext连接到我们的数据库。然后,无论是否更新记录,都会调用submitchanges并抛出以下错误:

Exception: Object reference not set to an instance of an object.
(no InnerException) 
 StackTrace:    at System.Data.Linq.ChangeDirector.StandardChangeDirector.Update(TrackedObject item)
   at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
   at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
  at Brainsch.DLinq.BrainschDataContext.SubmitChanges(ConflictMode failureMode)

此异常会一直重复,直到重新启动应用程序。重新启动应用程序后,它不再发生。

我找到了发生此错误的代码部分(https://referencesource.microsoft.com/#System.Data.Linq/ChangeDirector.cs,f4d313ee41bcda98)并查看该代码为我提供了许多选项,其中发生了空引用异常。

任何人都可以分享一下这个错误发生的原因以及如何规避它。

0 个答案:

没有答案