Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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