30

Używam EF Code First. Mocno używam adnotacji kodu, aby określić, w jaki sposób dane (model) powinny zostać sprawdzone. Jednak często potrzebuję sprawdzania poprawności w warstwie interfejsu użytkownika i być w stanie powstrzymać sprawdzanie poprawności, gdy zapisuję pewne dane w bazie danych w kodzie. Jednak po określeniu reguł sprawdzania poprawności są one stosowane wszędzie - w interfejsie użytkownika, w bazie danych, w warstwie dostępu do danych.Entity Framework/MVC3: tymczasowo wyłączyć sprawdzanie poprawności

Czy mogę tymczasowo wyłączyć sprawdzanie modelu na warstwie EF, aby można było zapisać dane za pomocą SaveChanges() bez uzyskiwania wyjątków sprawdzania poprawności?

Odpowiedz

57

Po prostu musisz ustawić Configuration.ValidateOnSaveEnabled = false w swojej klasie kontekstowej, zanim zadzwonisz pod numer SaveChanges().

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

Fajnie, spróbuję. Dziękuję Ci! –

+0

Szkoda, że ​​nie znalazłem tego kilka tygodni temu. Doskonały do ​​importu luzem. – sreimer

+0

Jest to pomocne! Działa również z MVC 4 i EF 6. Mam SQL Server DB pełne dane przekonwertowane z bazy danych Lotus Notes. Potrzebowałem sposobu, aby aplikacja zezwalała użytkownikowi ustawić kolumnę statusu na "Zarchiwizowane" lub "Usunięte" bez zmuszania ich do poprawiania danych w pierwszej kolejności (nie będą już używać tego wiersza). Ustawienie ValidateOnSaveEnabled na false przed wykonaniem .SaveChanges() działało idealnie dla mnie! –

Powiązane problemy