У меня есть метод, который записывает информацию журнала в Db.
Этот метод вызывается в цикле. На второй вставке я получаю InvalidOperationException:
Изменения в базе данных были успешно зафиксированы, но при обновлении контекста объекта произошла ошибка. ObjectContext может быть в несовместимом состоянии. Внутреннее сообщение об исключении: AcceptChanges не может продолжаться, потому что значения ключа объекта конфликтуют с другим объектом в ObjectStateManager. Убедитесь, что значения ключей являются уникальными, прежде чем вызывать AcceptChanges.
Я проверил и SSDL, и CSDL: они в порядке. Для StoreGeneratedPattern установлено значение Identity. БД также в порядке - соответствующее свойство id является тождественным.
Я обнаружил, что после
contex.LogHystory.AddObject(logEntry);
context.SaveChanges();
logEntry.Id по-прежнему равен 0. Поэтому после следующего вызова мы получили две записи с одинаковым Id.
Почему свойство Identity не обновляется после SaveChanges?