c# - EF 6 - 在表编码模式中添加/更新记录

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

我已将以下代码写入表中的如果不存在则添加如果存在则更新学生记录。

我使用的是 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();
    }
}

关于c# - EF 6 - 在表编码模式中添加/更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668279/

相关文章:

c# - 在我们的解决方案中将 Entity Framework 放在哪里?

entity-framework - EF 5 AddOrUpdate 重复数据

c# - 在 LocalDB 中重置 EF 代码优先数据库

c# - 在延迟之前长时间运行的异步方法会发生什么?

C# - 使用 LINQ 对包含键/值对的列表框进行排序

c# - 在使用c#导入datagridview之前根据单元格值删除一些行

asp.net - Entity Framework - ObjectQuery 返回 int 属性并将其分配给变量

c# - 如何强制 EF Code First 忽略继承?

c# - Entity Framework 代码首先,不是创建数据库

c# - .NET Core 依赖注入(inject)——多个项目