0

Entity Frameworkを理解するだけで、次のように単一のエンティティを保存、追加、削除などできます。

db.Entry(client).State = EntityState.Modified;
db.SaveChanges();

私の質問は、いくつかのレコードを変更したい場合、これをどのように行うべきかです。たとえば、タイプが「new」のすべてのジョブを選択し、タイプを「complete」に設定します。Linqを使用すると、すべてのジョブを簡単に選択できますが、ループして変更し、状態を変更済みに設定し、変更を保存し、次のジョブなどを実行する必要がありますか?私はまだ知らないか、なんとか見つけることができた簡単な方法があると確信しています。

4

2 に答える 2

0

EntityStateを設定する必要がありますか?SaveChangesは、保存する前にChangesを検出します。要求しているときに一度に複数のレコードを更新することはできませんが、ループして値を更新し、ループ後に変更の保存を呼び出すことはできます。これにより、データベースへの1つの接続が発生し、更新されたすべてのレコードが一度に保存されます。

于 2012-10-10T14:20:46.270 に答える
0

はい、各オブジェクトをループする必要がありますが、各オブジェクトの後に変更を保存する必要はありません。すべての変更が行われた後に変更を保存し、一度に更新することができます。何らかの理由がない限り、次のレコードを編集する前に保存する必要があります。

ただし、そのような単純な操作がある場合は、SQLステートメントを発行するだけでも実行できます。

context.Table.SqlQuery("UPDATE table set column = 1 where column2 = 3");

明らかに、それは多かれ少なかれオブジェクトグラフをバイパスしますが、単純なバッチステートメントの場合、それを行うことに何の問題もありません。

于 2012-10-10T14:27:45.653 に答える