我遇到这种情况:
var customer = unitOfWork.Customers.FirstOrDefault(c => c.Id == 1); // existing customer
var certificate = unitOfWork.Certificates.FirstOrDefault(c => c.Id == 1); // existing certificate
certificate.Customer = customer;
unitOfWork.SaveChanges();
结果是没有发生更新。当我检查ChangeTracker.Entities
时,我发现我的证书已设置给客户。但我也看到State
是Unchanged
......这怎么可能?我给变量一个值(certificate.Customer = customer;
)并且没有发生变化?
我在这里缺少什么?
答案 0 :(得分:0)
您无需再次将更新的证书添加到数据库。更新数据后,只需使用SaveChanges()方法即可。如果要在更新后添加新记录,则必须克隆整个证书对象。