EF 6 - Add/update 记录在 table 编码模式中

EF 6 - Add/update record in table coding pattern

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

我正在使用 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();
        }
    }
}

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

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