2

Мне нужно добавить столбец RowVersion ко всем моим таблицам. Мне нужно это по причинам, таким как хранилище данных (и аналогичные действия только для БД). Я не хочу использовать его для параллелизма.Удалить дополнительный просмотр столбцов RowVersion для Entity Framework

Я хочу, чтобы структура Entity Framework продолжала работать, как будто столбец RowVersion не существует. Но я, похоже, не вижу способа сделать это.

Когда я когда-либо сделать обновление, SQL Profile говорит мне, это то, что выполняется:

update [dbo].[Widget] 
set [WidgetCost] = @0 
where ([WidgetId] = @1) 

select [RowVersionId] 
from [dbo].[Widget] 
where @@ROWCOUNT > 0 and [WidgetId] = @1 

Если я не столбец RowVersion на столе, то второй оператор выбора не бывает.

Как я могу заставить Entity Framework просто игнорировать столбец RowVersionId? Если вообще возможно, я бы предпочел метод, который не требует ручного редактирования csdl/msdl после каждого обновления модели из базы данных. (Кто-то забыть в конце концов.)

Я попытался:

  1. Обеспечение того, чтобы параллелизм режим столбца RowVersionId установлен в положение «None»
  2. Удаление столбца RowVersionId из EDMX. (Я не могу удалить его из модели.)

ПРИМЕЧАНИЕ. Пока я не обновляю таблицу в дизайнере EF (edmx) после добавления столбца, он работает так, как ожидалось. Так что в Entity Framework есть что-то такое. (Но я не могу просто заблокировать мой edmx, начиная с обновления после добавления этой колонки.)

+0

Давненько я EDMX, но вы можете исключить столбцы после обновления модели? – DavidG

+0

В чем проблема с столбцом «RowVersion» в рабочем процессе Db-First? Вызывается ли исключение параллелизма? – Alireza

+0

@DavidG Я могу удалить его из редактора, но не из модели. – Vaccano

ответ

0

Я изучил это немного больше. Если вы измените значение StoreGeneratedPattern для столбца RowVersion с «Вычислено» на «Нет», то он не будет выполнять дополнительный поиск.

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