Exceptions by DataContext

2019-02-04 12:23发布

问题:

I've been doing some searching on the internet, but I can't seem to find the awnser. What exceptions can a DataContext throw? Or to be more specific, what exceptions does the DataContext.SubmitChanges() method throw?

EDIT
For reference, here a List of possible known exceptions that could be thrown by the L2S DataContext:

  • SqlException
  • ChangeConflictException
  • DuplicateKeyException
  • ForeignKeyReferenceAlreadyHasValueException
  • OutOfMemoryException (when not correctly disposing the DataContext)

回答1:

You're right, MSDN is not a great help here. This is what I can remember from the top of my head:

  • SqlException (from the ADO.NET layer)
  • ChangeConflictException (L2S)
  • DuplicateKeyException (L2S)
  • Anything that cusomized overrides (partial void OnXXXEntity) may raise


回答2:

Well, there are underlying database exceptions (I think of type SqlClientException) when the error occurs at the database level. There is the ChangeConflictException that it throws when it detects a concurrent change by another user. There may be others depending on whether a value is null when it shouldn't be, that sort of thing. A lot of the errors are unrelated to the context itself directly.

HTH.