У меня есть оптимизированная для памяти таблица в SQL Server 2017 под названием «Пользователь».
Я собираюсь обновить строку следующим образом:
using (var context = new MyDbEntities()) { var user = context.Users.Single(p => p.UserId == 1); user.Name = "John"; context.SaveChanges(); }
В операторе SaveChanges() появляется это исключение:
Доступ к оптимизированным для памяти таблицам с использованием уровня изоляции READ COMMITTED поддерживается только для транзакций с автоматической фиксацией. Он не поддерживается для явных или неявных транзакций. Укажите поддерживаемый уровень изоляции для таблицы, оптимизированной для памяти, с помощью табличной подсказки, например WITH (SNAPSHOT).
Я попытался изменить некоторые параметры в моей базе данных, например:
alter database MyDb set ALLOW_SNAPSHOT_ISOLATION ON
Также использовал транзакцию с изоляцией Snapshot в моем коде, но ничего не добился.