簡體   English   中英

更新EF 4.1中的記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM