Έχετε ήδη δημιουργήσει μια βάση δεδομένων αφού εκτελέσετε την εφαρμογή Code-First για πρώτη φορά, αλλά τι είναι μετά την εκκίνηση της δεύτερης φοράς; Δημιουργείται μια νέα βάση δεδομένων κάθε φορά που εκτελείται η εφαρμογή; Τι γίνεται με το περιβάλλον παραγωγής; Πώς μπορώ να αλλάξω τη βάση δεδομένων όταν αλλάζω το μοντέλο τομέα; Για να χειριστείτε αυτά τα σενάρια, πρέπει να χρησιμοποιήσετε μία από τις πολιτικές προετοιμασίας της βάσης δεδομένων.
Υπάρχουν τέσσερις διαφορετικές στρατηγικές προετοιμασίας βάσης δεδομένων:
- Δημιουργία βάσης δεδομένωνIfNotExists:Αυτό είναιπροεπιλογήδιαδικασία προετοιμασίας. Όπως υποδηλώνει το όνομα, θα δημιουργήσει μια βάση δεδομένων εάν δεν υπάρχει σύμφωνα με τη διαμόρφωση. Ωστόσο, εάν αλλάξετε την κλάση μοντέλου και στη συνέχεια εκτελέσετε την εφαρμογή με αυτόν τον αρχικοποιητή, δημιουργείται μια εξαίρεση.
- DropCreateDatabaseIfModelChanges: Εάν η κλάση μοντέλου (κλάση οντότητας) έχει αλλάξει, αυτός ο αρχικοποιητής θα διαγράψει την υπάρχουσα βάση δεδομένων και θα δημιουργήσει μια νέα. Επομένως, δεν χρειάζεται να ανησυχείτε για τη διατήρηση των σχημάτων της βάσης δεδομένων όταν αλλάζουν οι μοντέλων.
- DropCreateDatabaseAlways: Όπως υποδηλώνει το όνομα, αυτός ο αρχικοποιητής διαγράφει την υπάρχουσα βάση δεδομένων κάθε φορά που εκτελείτε την εφαρμογή σας, ανεξάρτητα από το αν η κλάση μοντέλου σας έχει αλλάξει ή όχι. Αυτό είναι χρήσιμο όταν χρειάζεστε μια νέα βάση δεδομένων κάθε φορά που εκτελείτε μια εφαρμογή, για παράδειγμα κατά την ανάπτυξη μιας εφαρμογής.
- Προσαρμοσμένη προετοιμασία βάσης δεδομένων: Μπορείτε επίσης να δημιουργήσετε τον δικό σας προσαρμοσμένο αρχικοποιητή εάν τα παραπάνω δεν πληρούν τις απαιτήσεις σας ή εάν θέλετε να χρησιμοποιήσετε τον παραπάνω αρχικοποιητή για να εκτελέσετε τη διαδικασία προετοιμασίας άλλων βάσεων δεδομένων.
Για να χρησιμοποιήσετε μία από τις παραπάνω στρατηγικές προετοιμασίας βάσης δεδομένων, πρέπει να ορίσετε το πρόγραμμα προετοιμασίας βάσης δεδομένων χρησιμοποιώντας την κλάση στην κλάση περιβάλλοντος βάσης δεδομένων, όπως φαίνεται παρακάτω:
Μπορείτε επίσης να δημιουργήσετε ένα προσαρμοσμένο πρόγραμμα προετοιμασίας βάσης δεδομένων κληρονομώντας ένα από τα προγράμματα προετοιμασίας, όπως φαίνεται παρακάτω:
Στο παραπάνω παράδειγμα, το SchoolDBInitializer είναι μια προσαρμοσμένη κλάση προετοιμασίας που προέρχεται από το CreateDatabaseIfNotExists. Αυτό διαχωρίζει τον κώδικα προετοιμασίας της βάσης δεδομένων από την κλάση περιβάλλοντος.
Ρυθμίστε το DB Initializer στο αρχείο διαμόρφωσης
Μπορείτε επίσης να ορίσετε τον αρχικοποιητή db στο αρχείο διαμόρφωσης. Για παράδειγμα, για να ορίσετε την προεπιλεγμένη ρύθμιση αρχικής τιμής στο app.config:
Μπορείτε να ρυθμίσετε ένα προσαρμοσμένο πρόγραμμα προετοιμασίας βάσης δεδομένων ως εξής:
Κλείστε το DB Initializer
Μπορείτε να απενεργοποιήσετε την προετοιμασία της βάσης δεδομένων για την εφαρμογή σας.Υποθέτοντας ότι δεν θέλετε να χάσετε υπάρχοντα δεδομένα στην παραγωγή, μπορείτε να κλείσετε τον αρχικοποιητή, ως εξής:
Μπορείτε επίσης να απενεργοποιήσετε τον αρχικοποιητή στο αρχείο διαμόρφωσης, για παράδειγμα:
|