30

Sto utilizzando prima il codice EF. Uso intensamente le annotazioni del codice per specificare come convalidare i dati (modello). Tuttavia, spesso ho solo bisogno di essere convalidato sul livello dell'interfaccia utente e di essere in grado di sopprimere la convalida quando salvo certi dati nel database nel codice. Tuttavia, una volta specificate le regole di convalida, vengono applicate ovunque, nell'interfaccia utente, nel database, nel livello di accesso ai dati.Entity Framework/MVC3: disabilita temporaneamente la convalida

Posso disabilitare temporaneamente la convalida del modello a livello EF in modo da poter salvare i dati utilizzando SaveChanges() senza ottenere eccezioni di convalida?

risposta

57

È sufficiente impostare Configuration.ValidateOnSaveEnabled = false nella classe di contesto prima di chiamare SaveChanges().

context.Configuration.ValidateOnSaveEnabled = false; 
context.SaveChanges(); 
+0

Cool, ci proverò. Grazie! –

+0

Vorrei averlo trovato questa settimana fa. Ottimo per le importazioni di massa. – sreimer

+0

Questo è molto utile! Funziona anche con MVC 4 e EF 6. Ho un DB di SQL Server pieno di dati convertiti da un DB di Lotus Notes. Avevo bisogno di un modo per far sì che l'applicazione consentisse all'utente di impostare la colonna di stato su "Archiviato" o "Cancellato" senza costringerli a correggere prima i dati (non useranno più la riga in ogni caso). Impostare ValidateOnSaveEnabled su false prima di eseguire .SaveChanges() ha funzionato perfettamente per me! –

Problemi correlati