2012-03-15 14 views
16

ho visto un sacco di gente quando si aggiorna un record di utilizzo:È richiesto EntityState.Modified per un aggiornamento?

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

Is questa linea richiesto? Sono stato in grado di fare un aggiornamento senza di esso.

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

mi chiedevo cosa questa dichiarazione è effettivamente utilizzato per se il contesto sa già che deve aggiornare il record senza di te specificare esplicitamente allora perché preoccuparsi di specificare in modo esplicito?

risposta

30

È necessario se le modifiche nell'entità sono state eseguite quando l'entità non è stata tracciata dal contesto EF (l'entità è stata scollegata). Se si carica entità dal contesto, modificarla e salvarla nello stesso contesto in cui non è necessario utilizzarla poiché EF terrà traccia delle modifiche e imposta automaticamente lo stato.

+0

Grazie questa è una spiegazione chiara ha senso ora. – John

1

Dal mio punto di vista questo deve essere utilizzato solo se l'entità è stata re-allegata al contesto. Altrimenti no.

Problemi correlati