如何使用Entity Framework code first更新一行数据?

9

我该如何更新数据库中的一行数据?因为没有update方法,如果使用add方法,当主键id已存在时会导致异常。如果可能,请提供一个例子。


确定涉及的数据库。 - DwB
2个回答

21

最简单的方法是:

(1) 使用主键(pk)检索现有行。

(2) 更新属性。

(3) 在上下文(context)上调用SaveChanges()。

例如:

        var student = context.Students.Find(42);

        student.Description = "updated";

        context.SaveChanges();

1
这是最简单的方法,但它会多查询一次数据库,不是吗?我的意思是,它必须执行SELECT来查找您想要更新的实体,然后进行更新。但通常情况下,您应该能够通过UPDATE而无需进行此查询来完成更新。是否有这样的方法? - Zoka

19

以下是一种对我有效的方法,无需先进行查询:

context.Students.Attach(student);
context.Entry(student).State = EntityState.Modified;
context.SaveChanges();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接