Сразу внесу ясность: добавление строки context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT Devices ON");
ровно перед строкой, в которой возникает описанное в названии исключение НЕ ДАЁТ НИКАКОГО ЭФФЕКТА. Ошибка остаётся в том же виде.
Теперь сам вопрос: при попытке записать объект класса в базу данных (вместе с ID-полем) вылетает исключение, как указано в названии вопроса. Есть ли какой-то более элегантный и надёжный способ установить IDENTITY_INSERT
для таблицы в ON
, чем отправка голого SQL-запроса?
Элегантный и надежный способ - не писать в IDENTITY поле. А чтобы сработало с SET IDENTITY_INSERT
, нужно все выполнять одной командой:
SET IDENTITY_INSERT Devices ON;
INSERT Devices (Id, Value)
SELECT @Id, @Value;
SET IDENTITY_INSERT Devices OFF;
Как вариант, чтобы не возиться с этим в C# коде, можно создать хранимую процедуру для вставки в Devices
и просто вызывать ее с параметрами @Id, @Value и тп.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть класс FurnitureComboBox, который является наследником ComboBoxПытаюсь привести ComboBox к FurnitureComboBox (от базового к производному) и чего-то не понимаю
Пытаюсь авторизоваться на сайте, но при решении ReCaptcha руками(ставиться пауза в скрипте), выводится ошибка "Повторите попытку"
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском