У меня есть таблица с уникальным индексом для таблицы со столбцом Ordinal. Так, например, таблица будет иметь следующие столбцы:
TableId, ID1, ID2, порядковый номер
Уникальный индекс для столбцов ID1, ID2, Порядковый номер.
Проблема, с которой я столкнулся, заключается в том, что при удалении записи из базы данных я заново упорядочиваю порядковые номера, чтобы они снова стали последовательными. Моя функция удаления будет выглядеть так:
public void Delete(int id)
{
var tableObject = Context.TableObject.Find(id);
Context.TableObject.Remove(tableObject);
ResequenceOrdinalsAfterDelete(tableObject);
}
Проблема в том, что когда я вызываю Context.SaveChanges (), он нарушает уникальный индекс, поскольку кажется, что он выполняет инструкции в другом порядке, чем они были переданы. Например, происходит следующее:
- Повторная последовательность Ординалов
- Удалить запись
Вместо:
- Удалить запись
- Повторная последовательность Ординалов
Это правильное поведение EF? И если это так, есть ли способ переопределить это поведение, чтобы принудительно выполнить порядок выполнения?
Если я не объяснил это правильно, пожалуйста, дайте мне знать ...