У меня есть некоторый код, который добавляет новые дочерние записи («даты взноса») родительской записи в мой DbContext
. Я только что заметил, что после того, как я добавлю его в набор, родительская коллекция InstallmentDates
(свойство навигации) не обновляется, чтобы содержать новый объект. Это то, что я ожидал. Но после добавления следующего свойство InstallmentDates
обновляется и содержит первое добавленное.
List<PayPlanInstallmentDate> installmentDates = new List<PayPlanInstallmentDates>();
foreach (var installmentDateSpec in payPlanSpec.InstallmentDates)
{
var dbInstallmentDate = CRMEntity<PayPlanInstallmentDate>.GetOrCreate(installmentDateSpec.ID);
if (dbInstallmentDate.ID == Guid.Empty) dbInstallmentDate.ID = Guid.NewGuid();
dbInstallmentDate.fk_PayPlanID = dbPayPlan.ID;
dbInstallmentDate.InstallmentNumber = installmentDateSpec.InstallmentNumber;
dbInstallmentDate.DueDate = installmentDateSpec.DueDate;
installmentDates.Add(dbInstallmentDate);
}
Где CRMEntity<PayPlanInstallmentDate>.GetOrCreate
в конечном итоге звонит:
public virtual T AddNew(T newEntity)
{
return DBContext.Set<T>().Add(newEntity);
}
Я понимаю, почему это может произойти, поскольку, когда я Add
новая сущность, она еще не связана внешним ключом. Однако в результате dbPayPlan.PayPlanInstallmentDates
остается со всеми, кроме последнего, добавленного. Мне было бы хорошо, если бы в нем не было ни одной из новых записей или их всех, но все, кроме одной, могло быть проблематичным. Есть ли способ заставить его обновиться снова без Add
чего-нибудь?