2011-02-08 7 views

答えて

21

最も簡単な方法は、次のとおりです。pkを使用して既存の行を取得する。

(2)プロパティを更新します。

(3)コンテキストでSaveChanges()を呼び出します。

ここで

 var student = context.Students.Find(42); 

     student.Description = "updated"; 

     context.SaveChanges(); 
+1

これは最も簡単な方法ですが、データベースにもう1つのクエリを作成しますか?つまり、SELECTを実行して、更新するエンティティを見つけて更新する必要があります。しかし、一般的にはUPDATEだけでこのクエリを実行する必要はありません。そのような方法はありますか? – Zoka

17

は、最初のクエリを作成することなく、私のために働いていた方法です:

context.Students.Attach(student); 
context.Entry(student).State = EntityState.Modified; 
context.SaveChanges(); 
+0

もう1つの答えはこれまで私のために働いていましたが、私の最初のコードの最初のプロジェクトではありませんでした。だから、あなたの答えはなぜ働いたのですか? – MVCDS

+0

Paulの答えのように検索クエリを発行しなかった場合、生徒オブジェクトはどこから来たのですか? – usefulBee

+0

申し訳ありません私は2年以上でEFを使用していません。私は私の答えにコメントできません。私はもはやフレームワークに精通していません。 – leojh

関連する問題