EF 6 - 以表格编码模式添加/更新记录

时间:2015-07-28 05:49:12

标签: c# entity-framework ef-code-first code-first

我已将以下代码写入表格中的Add If does not existUpdate if exist学生记录。

我正在使用Entity Framework 6.1.1版本。

它适用于我但我觉得它是非常基本的级别代码。 有没有更好的方法可以重写呢?

代码:

public void Update(Student student)
{
Student student = _context.Student.Find(studentId);
Student orignal = new Student { Id = student.Id, RollNumber = student.RollNumber, StudentType = student.StudentType, Class = student.Class};

using (var context = new DBContext())
    {
        if (student != null)
        {
            context.Entry(orignal).State = EntityState.Modified;
            context.SaveChanges();
        }
        else {
            context.Student.Add(orignal);
            context.SaveChanges();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

命名空间System.Data.Entity.Migrations上有AddOrUpdate方法。

public void AddOrUpdate(Student student)
{
    using (var context = new DBContext())
    {
        context.Student.AddOrUpdate(student);
        context.SaveChanges();
    }
}