2014-07-24 218 views
0

我正在嘗試使用Linq to Entities構建數據訪問層。我遇到了一個想更新整個對象的問題,但我不確定如何去解決這個問題。到目前爲止,我有以下幾點:更新Linq To Entities

public static Character Update(Character character) 
     { 
      using (Entities entities = new Entities()) 
      { 

       Character characterToUpdate = entities.Characters.Where(c => c.PK_CharacterID == character.PK_CharacterID).First(); 
       characterToUpdate = character; 

       entities.SaveChanges(); 
       return character; 
      } 
     } 

不過,我認識到,在這種情況下,改變「字」對象只是替換對象的實例。有沒有辦法更新對象,而不是逐個產業地進行更新?

謝謝!

+0

我不這麼認爲。您可以在Character類中實現複製方法,將所有屬性複製到當前實例。 *** void複製(Character other)*** – Ante

+0

爲什麼不將'character'對象附加到您的上下文中? –

回答

1

要做到這一點,而無需使用自動映射庫的唯一方法是......

entities.Entry(characterToUpdate).CurrentValues.SetValues(character); 

這將取代不屬於導航性質的所有屬性。

+0

完美地工作,謝謝! – Jack