I’m getting below error while updating two tables using entity framework –
Object with same key already exists in objectstatemanager. The existing object is in the modified state. An object can only added to objectstatemanager again if it is in added state
My code
public void UpdatePaymentTransaction(PaymentTransaction paymentTransaction)
{
using (var context = DataObjectFactory.CreateContext())
{
var entity = context.PaymentTransactionEntities.Where(c => c.Id == paymentTransaction.Id).SingleOrDefault();
entity.PartyId = paymentTransaction.PartyId;
entity.TotalAmount = paymentTransaction.TotalAmount;
entity.RequestDate = paymentTransaction.RequestDate;
entity.ResponseDate = paymentTransaction.ResponseDate;
context.PaymentTransactionEntities.ApplyCurrentValues(entity);
context.SaveChanges();
if (paymentTransaction.PaymentGatewayOrderId != null)
{
PaymentTransactionContractEntity paymentTransactionContractEntity = new PaymentTransactionContractEntity();
string[] contractIds = paymentTransaction.PaymentGatewayOrderId.Split('-');
foreach (var contractId in contractIds)
{
paymentTransactionContractEntity.PaymentTransactionId = entity.Id;
paymentTransactionContractEntity.ContractId = Convert.ToInt32(contractId);
context.PaymentTransactionContractEntities.AddObject(paymentTransactionContractEntity);
context.SaveChanges();
}
}
}
}
Try this instead: