Этот код:
orderContext.ShippingOrders.AddObject(shippingOrder);
orderContext.ObjectStateManager.ChangeObjectState(shippingOrder, System.Data.EntityState.Modified);
foreach (var shippingOrderItem in shippingOrder.ShippingOrderItems) {
//Exception happens here.
orderContext.ObjectStateManager.ChangeObjectState(shippingOrderItem, System.Data.EntityState.Modified);
}
Результаты в этом исключении: AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges
. Сообщение об исключении мне кажется смущающим, поскольку у меня есть только 1 объект, который является частью отношения (shippingOrderItem), поэтому не может быть дублирующего ключа.
Родительский объект (shippingOrder) находится в отдельном состоянии, и я не хочу вставлять новые shippingOrderItems; Я хочу обновить существующие. Как я могу изменить их состояние, которое будет изменено?
Структура псевдокласса для объекта, с которым я работаю, выглядит следующим образом:
public class ShippingOrder {
public List<ShippingOrderItem> ShippingOrderItems { get; set; }
}
public class ShippingOrderItem {
//This is the where I need to insert new records! Everything else is an update.
public List<ShippingOrderItemSerialNumber> ShippingOrderItemSerialNumbers { get; set; }
}