【发布时间】:2011-11-24 09:37:52
【问题描述】:
我在使用实体框架更新两个表时遇到错误 -
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();
}
}
}
}
【问题讨论】:
标签: asp.net-mvc-3 entity-framework