Сразу внесу ясность: добавление строки 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 и тп.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть класс FurnitureComboBox, который является наследником ComboBoxПытаюсь привести ComboBox к FurnitureComboBox (от базового к производному) и чего-то не понимаю
Пытаюсь авторизоваться на сайте, но при решении ReCaptcha руками(ставиться пауза в скрипте), выводится ошибка "Повторите попытку"
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском