我已将我的项目从EF4迁移到EF6。我在更新记录时遇到了麻烦。以下是我的代码
public int SaveApplicantData(Applicant objApplicant, bool isEdit)
{
DBEntities context = new DBEntities();
int applicantId = 0;
try
{
if (objApplicant.Id > 0)
{
var applicant = context.Applicants.Where(a => ((a.Id != objApplicant.Id) && (a.SSN == objApplicant.SSN))).FirstOrDefault();
if (applicant != null)
{
return -1;
}
else
{
applicant = context.Applicants.Find(objApplicant.Id);
}
if (applicant != null)
{
applicant.FirstName = "TEST NAME";
context.SaveChanges();
}
}
return objApplicant.Id;
}
}
我也试过context.Entry(applicant).CurrentValues.SetValues(objApplicant)
,但对我不起作用。花费大量时间寻找解决方案。请协助解决问题。
更新
我也试过
context.Applicants.Attach(objApplicant);
context.Entry(objApplicant).State = EntityState.Modified;
context.SaveChanges();
但没有成功!
答案 0 :(得分:0)
请尝试以下代码,而不是添加context.Applicants.Add(objApplicant);
context.Entry(objApplicant).State = EntityState.Modified;
context.SaveChanges();
更新:尝试使用此代码块。
if (applicant != null)
{
applicant.FirstName = "TEST NAME";
context.Entry(applicant).State = EntityState.Modified;
context.SaveChanges();
}