2013-05-28 4 views
0

Я использую EF 4.0, и у меня в моей базе данных таблица с полем timestamp, потому что я хочу контролировать параллелизм в этой таблице.проблемы с временной меткой и параллелизмом

Затем я создал свой edmx, и я сгенерировал классы POCO с шаблоном DBContext.

Первая попытка, которую я делаю, - это в edmx, в поле метки времени, я установил сохраненный сгенерированный шаблон в none. Тогда в моем коде я:

myContext.MyTable.Attach(myEntity); 
myContext.Entry<MyTable>(myEntity).Property(p => p.AnyFieldNoTimestamp).IsModified = true; 
myContext.SaveChanges(); 

Это дает мне исключение, которое говорит, что не представляется возможным обновить столбец временной метки.

Если у меня есть только поле для изменения, и это поле не является меткой времени, почему я получаю эту ошибку?

Затем я пытаюсь установить сохраненный сгенерированный шаблон в edmx в Indentity.

действительно у меня есть транзакция и два saveChanges. В этой второй попытке первые savechanges не дают никакой ошибки, но во вторых savechanges я получаю затронутые строки excepcion 0, потому что кажется, что временная метка объекта изменилась с первого варианта сохранения на второй, поэтому в элементе управления параллелизмом Я получаю это исключение.

Так что я хотел бы знать, как использовать поле временной метки внутри транзакции и две операции сохранения.

Спасибо.

ответ

0

Я стараюсь использовать набор Computed и в этом случае работает правильно.

Смежные вопросы