Я буду более конкретным здесь .. Это странная проблема, и на самом деле, я не понимаю, почему это происходит ..
В моей модели данных каждая таблица имеет столбец типа rowversion, и вмой EDM (Entity Data Model), я включил версию, чтобы быть моей строкой и точно соответствует моей версии строки моего столбца в базе данных.
Вот проблема.
1) I List items
2) I go update one item, (supose with id 4)
3) I send to the form in a hiddenfield the value of the rowversion
4) Someone updated in database some field in id 4 (making the rowversion to change)
5) I update the new values
6) i Convert string data with rowversion to byte[]
7) I get the object with primary key from the database and affect all properties of the object returned from database with model binded object that come from the form post including the rowversion!
8) I invoke SaveChanges()
9) The Problem!
Я иду в профилировщик и яобратите внимание, что запрос, который является сборкой, содержит более новую версию, а не более старую (не то, что я затронул форму публикации для объекта, поступающего из базы данных).
Мне кажется, что EF при сборке используетnewVersion в каком-то месте и не использует текущее значение, управляющее параллелизмом в объекте ..
Кто-то знает, что это происходит ????