更新实体在实体框架6中不起作用

时间:2015-04-09 10:08:22

标签: entity-framework entity-framework-6

我已将我的项目从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();

但没有成功!

1 个答案:

答案 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();
                }
相关问题