2011-10-18 103 views
0

使用ADO.Entity更新單個記錄(具有特定ID)的單個字段的最佳做法是什麼? 據我所知,你必須檢索由ID整個對象,更新屬性和調用的SaveChanges:ADO.Entity更新一個記錄的單個字段而不檢索整個記錄

int id = ...; 
var db = new MyEntities(); 
var o = (from mo in db.myObject 
     where mo.id = idObject 
     select mo).First(); 
o.MyProperty = "some value"; 
db.SaveChanges(); 

但似乎有點開銷不必檢索整個對象,因爲我不關心記錄的值,因爲我只是想設置一個屬性,而不考慮值。

另一種選擇是爲此創建一個存儲過程...

+0

你爲什麼認爲檢索整個記錄是一個問題?這就是數據庫系統所要做的。如果記錄太大(包含多個BLOB等),那麼你應該重新執行你的模式。 –

+0

我不同意這不是問題,因爲如果是在應用程序工作期間進行數千次的行爲,那麼這是一種開銷。無論大小如何,獲取不使用的數據都沒有意義。 – nogola

+0

見Donald Knuth教授,「我們應該忘記小效率,大約97%的時間:**過早優化是所有邪惡的根源**」[文章](http://en.wikipedia.org/wiki/Program_optimization) –

回答

2

回覆:What is the best practise for updating a single field for one record (with specific ID) using ADO.Entity?

答:最好的做法是檢索整個記錄,更新一個或多個字段,然後店記錄。 - 就像你在做什麼一樣。