2012-03-15 12 views
16

レコードの使用を更新するとき、私は多くの人々を見てきた:この行は更新にはEntityState.Modifiedが必要ですか?

... 
ms.Status = status; 
db.Entry(ms).State = EntityState.Modified; 
db.SaveChanges(); 

必要ですか?私はそれなしで更新することができました。

db.Entry(ms).State = EntityState.Modified; 

私は、コンテキストがすでにそれはあなたが明示的に指定せずに、そのレコードを更新する必要があります知っているなら、なぜ明示的に指定わざわざこの文は、実際に使用されているかと思いましたか?

答えて

30

エンティティがEFコンテキストでトラッキングされていない(エンティティが切り離された)ときに、エンティティの変更が行われた場合は必須です。コンテキストからエンティティを読み込んだ場合は、EFが変更を追跡して状態を自動的に設定するため、使用する必要のない同じコンテキストでエンティティを変更して保存します。

+0

ありがとうございました。今は分かりやすい説明です。 – John

1

エンティティがコンテキストに再アタッチされている場合は、これを使用する必要があります。そうでなければいいえ。

関連する問題