Я нахожу много записей в наших базах данных с ключами EF Relationship, которые обнуляются (делая их осиротевшими и бесполезными для нас).
Например, если у меня есть Предмет, которому принадлежитсписок конфигураций, и я делаю изменения в конфигурациях элемента, большую часть времени я получаю со всеми «старыми» конфигурациями в базе данных без ссылки на itemId, и новый список конфигураций в базе данных, правильно ссылающийся на элемент.
Существует ли стандартный способ обработки обновлений дочерних объектов, чтобы они не осиротели и не занимали место в моих таблицах БД? Я нахожусь в процессе отслеживания, где создаются эти сироты, или я мог бы предоставить точный код. Я надеюсь на стандарт или что-то, что позволит моей команде следовать хорошему шаблону, чтобы избежать этого в будущем, пока мы пытаемся очистить существующий код.
Один пример полусреднего кода:
var itemFromDb = _context.Items.Find(id);
itemFromDb.Configurations = listOfConfigurationsFromElsewhere;
_context.SaveChanges();
// Causes the itemFromDb.Configurations list to be orphaned and
// listOfConfigurationsFromElsewhere to be created.