Changeconflictexception with the message ‘Row not found or changed‘ appears to be a very annoying bug or error, but this is not the first time that i am getting this error while updating database record with Linq to SQL on ASP. I tried to re-drag SQL tables from server explorer to the designer and rebuild the solution.
Blinq creates Bound Field objects for Date Time fields that do not contain precision beyond seconds, so updates with Date Time fields with high precision that participate in optimistic concurrency fail.
Submit Changes(Data Context data Context) 9 System.
Say anything you loaded any may modify, nobody else would be allowed to touch it during that time. Granted, LINQ is a little more optimistic about it, no sense in locking the row or table if you may never be updating the data, but you think through those problems.
Ask yourself what would break or slow down significantly if you were to put strict transactional locks on your objects, and that will probably point you to the offending code.
If the underlying data changes in the meantime, it gets mad.
The problem is that because LINQ stored a copy of that, that is the copy it wants to update.
Use this option carefully—removing this column from participating in optimistic concurrency will allow overwrites of the value to succeed even if the database’s value has been changed.
Ask yourself this, what if you put a locking transaction on your data for the whole lifetime of your objects.
with high precision) are not marshaled correctly between the server and client and Linq-To-SQL's optimistic concurrency feature thinks the loss of precision in the erroneous marshaling is a sign that the database updated its value and aborts the action.
Given the rumour that Microsoft are moth-balling Linq-To-Sql in favor of Entity Framework, one wonders whether these sorts of bugs will be fixed?
To fix this, do one of the following: Designate the Date Time field as never participating in optimistic concurrency.