Довольно опасно, хотя, изменяя этот сгенерированный код. Что делает метод RecordRemovalFromCollectionProperties
, так это проверяет, есть ли добавленные объекты, которые снова удаляются (конечное состояние = нет добавленных или удаленных объектов, добавление и удаление "вычеркивают друг друга", видите ли ...?). Вот почему есть также RecordAdditionToCollectionProperties
, который выполняет «обратную» проверку того, что я объяснил ранее.
Теперь, с вашим изменением в этом методе ChangeTracker, возможно, вы отправите EntityA с добавленным EntityB и удаленным EntityB (которые являются теми же экземплярами). Это может быть сделано пользователем или кодом в любом случае.
Я не знаю, позволит ли контекст объекта сначала это сделать. Но это по крайней мере немного неэффективно. Отправка обновленного EntityA, который сообщает контексту объекта (context.ApllyChanges(EntityA)
) Добавьте этот EntityB и сразу после этого mwoah также удалит этот же EntityB;)
У меня есть некоторый опыт в этой области, так что если у вас есть дополнительные вопросы ...
Я думаю, у первоначальной проблемы есть причина, но ваше решение немного грубовато.