0
我收到以下错误,同时更新使用实体框架的两个表 -对象状态管理器中已存在具有相同密钥的对象。
对象有相同的密钥在objectstatemanager已经存在。现有对象处于修改状态。一个对象只能添加到再次objectstatemanager如果是在加国
我的代码
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();
}
}
}
}