Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 37510|Odpowiedź: 1

[Źródło] Strategia inicjalizacji bazy danych w EF 6 Code-First

[Skopiuj link]
Opublikowano 17.04.2019 15:56:46 | | |
Już uruchomiłeś bazę danych po uruchomieniu aplikacji Code-First po raz pierwszy, ale co to jest po drugim uruchomieniu? Czy za każdym razem, gdy aplikacja jest uruchamiana, tworzy się nowa baza danych? A co z środowiskiem produkcyjnym? Jak zmienić bazę danych, gdy zmieniam model domeny? Aby poradzić sobie z takimi sytuacjami, musisz użyć jednej z polityk inicjalizacji bazy danych.

Istnieją cztery różne strategie inicjalizacji bazy danych:

  • CreateDatabaseIfNotIstDoes:To jestdomyślnyprocedura inicjalizacji. Jak sama nazwa wskazuje, utworzy bazę danych, jeśli nie istnieje zgodnie z konfiguracją. Jednak jeśli zmienisz klasę modelu i uruchomisz aplikację z tym inicjalizatorem, wyrzucany jest wyjątek.
  • DropCreateDatabaseIfModelChanges: Jeśli klasa modelu (klasa encji) uległa zmianie, ten inicjalizator usunie istniejącą bazę danych i utworzy nową. Więc nie musisz martwić się o utrzymanie schematów bazy danych, gdy klasy modeli się zmieniają.
  • DropCreateDatabaseAlways: Jak sama nazwa wskazuje, ten inicjalizator usuwa istniejącą bazę danych za każdym razem, gdy uruchamiasz aplikację, niezależnie od tego, czy klasa modelu się zmieniła, czy nie. Jest to przydatne, gdy za każdym razem potrzebujesz nowej bazy danych, na przykład podczas jej tworzenia.
  • Niestandardowy inicjalizator bazy danych: Możesz także stworzyć własny inicjalizator, jeśli powyższe nie spełnia Twoich wymagań, lub jeśli chcesz użyć powyższego inicjalizatora do procesu inicjalizacji innych baz danych.

Aby użyć jednej z powyższych strategii inicjalizacji bazy, musisz ustawić inicjalizator bazy danych używając klasy w klasie kontekstowej Database, jak pokazano poniżej:




Możesz także stworzyć niestandardowy inicjalizator bazy danych, dziedzicząc jeden z inicjalizatorów, jak pokazano poniżej:




W powyższym przykładzie SchoolDBInitializer to niestandardowa klasa inicjalizatora wyprowadzona z CreateDatabaseIfNotExists. To oddziela kod inicjalizacji bazy danych od klasy kontekstowej.

Ustaw inicjalizator bazy danych w pliku konfiguracyjnym

Możesz też ustawić inicjalizator bazy w pliku konfiguracyjnym. Na przykład, aby ustawić domyślne ustawienie wartości początkowej w app.config:




Możesz skonfigurować niestandardowy inicjalizator bazy danych w następujący sposób:




Close DB Initializer

Możesz wyłączyć inicjalizator bazy danych dla swojej aplikacji.Zakładając, że nie chcesz stracić istniejących danych w produkcji, możesz zamknąć inicjalizator, w następujący sposób:



Możesz też wyłączyć inicjalizator w pliku konfiguracyjnym, na przykład:








Poprzedni:Ilustrowana Kryptografia 3. Wydanie
Następny:Wideo z klasy zatrudnienia w Dolinie Krzemowej z kwietnia 2018
 Ziemianin| Opublikowano 07.02.2021 15:08:59 |
Pozwól, aby Entity Framework rozpoczął, nie jest już ważny __MigrationHistory tabeli
https://www.itsvse.com/thread-3255-1-1.html

Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com