2010-05-18 98 views
4

大家好,我做這樣的事情 -如何在ADO.NET實體框架中再次選擇記錄而無需再次選擇記錄?

void update(ClasstoUpdate obj)//obj is already having values to update... 
{ 
    var data= (from i in Entityobject.ClasstoUpdate 
      where obj.Id==i.Id 
      select i).FirstorDefault(); 
    data.Name="SomeCoolName"; 
    EntityObject.SaveChanges(); 
} 

我要在不使用的Id再次查詢執行更新,有沒有什麼辦法,我剛更新的對象傳遞給ADO.NET實體框架,它更新it.If對不起,如果我在這裏失去了一些東西,但這是我一直在想知道是否有一個簡單的方法來更新。謝謝。

回答

6

更新對象的簡單方法是獲取它,對其進行更改並提交更改,這是您已經在做的事情。

另一種方法是attach the object,並告訴實體框架該對象處於修改狀態。

第三種方法是通過構建一個SQL字符串來更新對象,該字符串直接在數據庫中更新對象而不用提取對象。不過,我不會推薦這樣做。

一個方面:記得檢查你的函數中爲null。如果您知道FirstOrDefault的返回值永遠不會爲空,那麼您應該使用First代替。您可能還想考慮使用Single而不是First

+0

對不起,我只是做了一個例子..我會這樣做...我要更新查詢...我想知道的是我是否可以通過更新的對象以某種方式更新 – Vishal 2010-05-18 20:36:03

+1

可以你提供了一個附加場景的例子嗎? – 2012-05-23 14:50:04