[英]Updating record in EF 4.1
我有一個員工對象說:
public class Employee
{
public int Id {get; set;}
public int Name {get; set;}
public int Address {get; set;}
...other few 10's of properties
}
問題是我如何才更新Name? 例如。 如果我想更新姓名我做
Employee e = Db.Employees.Where(e => e.Id == someId).SingleOrDefault();
e.Name = "Jack";
Db.SaveChanges();
如您所見,為了更新,我必須首先獲取對象然后更新,然后調用SaveChanges()。 對於可以在對數據庫的單個查詢中完成的任務,我必須觸發2個查詢:1)獲取對象2)更新所需對象並保存更改。
對於傳統的存儲過程方法,我只需傳遞Id,傳遞新的Name並編寫Update語句,我就完成了。 實體框架真的效率低下還是我錯過了什么?
您可以選擇性地更新列:
var employee = new Employee() { Id = someId, Name = "Jack" }
Db.Employees.Attach(employee);
Db.Employees.Entry(employee).Property(e => e.Name).IsModified = true;
Db.SaveChanges();
注意:只有帶有.NET 4.5的EF 5才支持將IsModified
設置為false
。
您應該使用Attach方法
var e = new Employee() { Id = someId, Name = "Jack" }
Db.Employees.Attach(e);
Db.Employees.Entry(e).Property(p => p.Name).IsModified = true
Db.SaveChanges();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.