Как избежать осиротевших записей в коде Entity Framework - PullRequest
0 голосов
/ 21 октября 2019

Я нахожу много записей в наших базах данных с ключами 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.
...