我有2个对象Purchase
和Currency
(Currency
也是Purchase
中的属性)。
现在我正在尝试向数据库中添加一个包含现有Purchase
的新Currency
。发生错误:
违反PRIMARY KEY约束'PK_dbo.Currency'。无法在对象'dbo.Currency'中插入重复键。重复键值为“
当我调用方法SaveChanges
时会发生这种情况。
通用存储库类:
public abstract class GenericRepository<TEntity>
{
public virtual TEntity Add(TEntity entity)
{
return DbSet.Add(entity);
}
}
更新付款的服务方式
payment.UserData = userRepository.Get(userId).Data;
payment.Currency = currencyRepo.FindByCode(mwbepaymentmethod.CurrencyCode);
if (payment.Currency == null)
{
throw new ValidationException(String.Format("NoCurrencyFoundText", mwbepaymentmethod.CurrencyCode));
}
paymentMethodRepository.Add(payment);
paymentMethodRepository.SaveChanges();
如何标记新对象的某些属性不是新的,并且不应将它们添加到数据库中,只需添加引用。
更新1: 上下文通过Autofac定义为InstancePerRequest:
builder.RegisterType<MobileWalletContext>().As<IMwbeDbContext>().InstancePerRequest();