Использование IDENTITY_INSERT с EF4

Я пытаюсь создать запись в дб, который имеет предопределенное значение первичного ключа. Я знаю, как сделать это с sql, но я задавался вопросом, может ли EF сделать это для меня? Иначе я должен буду создать сохраненный proc для вставок.

12
задан ajma 15 February 2011 в 04:49
поделиться

1 ответ

В случае если атрибут StoreGeneratedPattern установлен в "None" для вашей сущности, в базу данных будет передано значение Entity Key, которое вы для нее указали.

В случае, если этот атрибут установлен либо в "Identity", либо в "Computed", нет возможности контролировать, какое значение будет установлено для этого столбца в БД.

Поэтому, если у вас в базе данных есть автоинкрементный столбец, и мастер ADO.NET Entity Data Model установил для вас StoreGeneratedPattern, вы можете вручную изменить этот атрибут на "None" в SSDL-части модели с помощью XML Editor, а затем включить IDENTITY_INSERT.

Вы можете использовать метод ObjectContext.ExecuteStoreCommand если вы используете EF4 или использовать свойство ObjectContext.Connection.StoreConnection для выполнения SQL команды SET IDENTITY_INSERT ON (как в EF1, так и в EF v4).

12
ответ дан 2 December 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: