当我将现有对象设置为另一个现有对象的属性时,为什么不保存现有对象

时间:2013-09-24 09:12:07

标签: c# entity-framework

我遇到这种情况:

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时,我发现我的证书已设置给客户。但我也看到StateUnchanged ......这怎么可能?我给变量一个值(certificate.Customer = customer;)并且没有发生变化?

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您无需再次将更新的证书添加到数据库。更新数据后,只需使用SaveChanges()方法即可。如果要在更新后添加新记录,则必须克隆整个证书对象。