У меня есть таблица с уникальным ограничением для двух полей (IDParent, positionInParent).
Parent
{
IDParent;
}
Child
{
IDChild;
IDParent;
PositionInParent;
}
Я могу иметь только ребенка в позиции, и я хочу, чтобы, когда я удаляю ребенка потомки с положением +1 изменяются на положение -1, чтобы не было пробелов.
Проблема заключается в том, что когда я сохраняю изменения в dataContext, потому что EF не обеспечивает порядок операций , поэтому я получаю исключение из-за уникального ограничения, похоже, что обновление затронутых потомков выполняется перед обновлением удаленного потомка.
Итак, я делаю это, что это работает, но мне интересно, есть ли Это лучший способ решения этой проблемы:
- Измените состояние затронутых детей на неизменное.
- Сохраните изменения, чтобы удаленный дочерний элемент был отмечен как удаленный.
- Измените состояние затронутых детей на измененные.
- Сохраните изменения еще раз.
Но это дает мне дополнительное сохранение изменений, а также использование двух циклов для изменения состояния затронутые дети.
Это уникальный способ или есть лучший способ сделать это?
Я использую EF Core 3.0.
Спасибо.