这就是我想要做的并且目前正在收到错误:
ApplicationId是对象关键信息的一部分,无法修改
ApplicationId
是Applicant
表中的主键。
我做错了什么?
var existingApplicant = db.Applicants.Where(x => x.LoginId == LoginId).FirstOrDefault();
var attachedEntry = db.Entry(existingApplicant);
attachedEntry.Property(x => x.ApplicantId).IsModified = false;
attachedEntry.CurrentValues.SetValues(updatedApplicant);
db.SaveChanges();
答案 0 :(得分:0)
看起来你告诉州经理该财产没有改变,然后改变它,这标志着它已经改变了。 尝试交换第3行和第4行,这样你就可以将attachedEntry.ApplicantId设置为updatedApplicant.ApplicantId,然后告诉状态管理它没有改变。
如果这不起作用,请尝试在使用SetValues之前保存Id,然后将其重新设置为旧值。
答案 1 :(得分:0)
呃......我忘了updatedApplicant有新的ApplicbntId,它与现有申请人中的ApplicantId不同。
我所要做的只是说:
applicant.ApplicantId = existingApplicant.ApplicantId;