Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 37510|Απάντηση: 1

[Πηγή] Στρατηγική προετοιμασίας βάσης δεδομένων στο EF 6 Code-First

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 17/4/2019 3:56:46 μ.μ. | | |
Έχετε ήδη δημιουργήσει μια βάση δεδομένων αφού εκτελέσετε την εφαρμογή Code-First για πρώτη φορά, αλλά τι είναι μετά την εκκίνηση της δεύτερης φοράς; Δημιουργείται μια νέα βάση δεδομένων κάθε φορά που εκτελείται η εφαρμογή; Τι γίνεται με το περιβάλλον παραγωγής; Πώς μπορώ να αλλάξω τη βάση δεδομένων όταν αλλάζω το μοντέλο τομέα; Για να χειριστείτε αυτά τα σενάρια, πρέπει να χρησιμοποιήσετε μία από τις πολιτικές προετοιμασίας της βάσης δεδομένων.

Υπάρχουν τέσσερις διαφορετικές στρατηγικές προετοιμασίας βάσης δεδομένων:

  • Δημιουργία βάσης δεδομένωνIfNotExists:Αυτό είναιπροεπιλογήδιαδικασία προετοιμασίας. Όπως υποδηλώνει το όνομα, θα δημιουργήσει μια βάση δεδομένων εάν δεν υπάρχει σύμφωνα με τη διαμόρφωση. Ωστόσο, εάν αλλάξετε την κλάση μοντέλου και στη συνέχεια εκτελέσετε την εφαρμογή με αυτόν τον αρχικοποιητή, δημιουργείται μια εξαίρεση.
  • DropCreateDatabaseIfModelChanges: Εάν η κλάση μοντέλου (κλάση οντότητας) έχει αλλάξει, αυτός ο αρχικοποιητής θα διαγράψει την υπάρχουσα βάση δεδομένων και θα δημιουργήσει μια νέα. Επομένως, δεν χρειάζεται να ανησυχείτε για τη διατήρηση των σχημάτων της βάσης δεδομένων όταν αλλάζουν οι μοντέλων.
  • DropCreateDatabaseAlways: Όπως υποδηλώνει το όνομα, αυτός ο αρχικοποιητής διαγράφει την υπάρχουσα βάση δεδομένων κάθε φορά που εκτελείτε την εφαρμογή σας, ανεξάρτητα από το αν η κλάση μοντέλου σας έχει αλλάξει ή όχι. Αυτό είναι χρήσιμο όταν χρειάζεστε μια νέα βάση δεδομένων κάθε φορά που εκτελείτε μια εφαρμογή, για παράδειγμα κατά την ανάπτυξη μιας εφαρμογής.
  • Προσαρμοσμένη προετοιμασία βάσης δεδομένων: Μπορείτε επίσης να δημιουργήσετε τον δικό σας προσαρμοσμένο αρχικοποιητή εάν τα παραπάνω δεν πληρούν τις απαιτήσεις σας ή εάν θέλετε να χρησιμοποιήσετε τον παραπάνω αρχικοποιητή για να εκτελέσετε τη διαδικασία προετοιμασίας άλλων βάσεων δεδομένων.

Για να χρησιμοποιήσετε μία από τις παραπάνω στρατηγικές προετοιμασίας βάσης δεδομένων, πρέπει να ορίσετε το πρόγραμμα προετοιμασίας βάσης δεδομένων χρησιμοποιώντας την κλάση στην κλάση περιβάλλοντος βάσης δεδομένων, όπως φαίνεται παρακάτω:




Μπορείτε επίσης να δημιουργήσετε ένα προσαρμοσμένο πρόγραμμα προετοιμασίας βάσης δεδομένων κληρονομώντας ένα από τα προγράμματα προετοιμασίας, όπως φαίνεται παρακάτω:




Στο παραπάνω παράδειγμα, το SchoolDBInitializer είναι μια προσαρμοσμένη κλάση προετοιμασίας που προέρχεται από το CreateDatabaseIfNotExists. Αυτό διαχωρίζει τον κώδικα προετοιμασίας της βάσης δεδομένων από την κλάση περιβάλλοντος.

Ρυθμίστε το DB Initializer στο αρχείο διαμόρφωσης

Μπορείτε επίσης να ορίσετε τον αρχικοποιητή db στο αρχείο διαμόρφωσης. Για παράδειγμα, για να ορίσετε την προεπιλεγμένη ρύθμιση αρχικής τιμής στο app.config:




Μπορείτε να ρυθμίσετε ένα προσαρμοσμένο πρόγραμμα προετοιμασίας βάσης δεδομένων ως εξής:




Κλείστε το DB Initializer

Μπορείτε να απενεργοποιήσετε την προετοιμασία της βάσης δεδομένων για την εφαρμογή σας.Υποθέτοντας ότι δεν θέλετε να χάσετε υπάρχοντα δεδομένα στην παραγωγή, μπορείτε να κλείσετε τον αρχικοποιητή, ως εξής:



Μπορείτε επίσης να απενεργοποιήσετε τον αρχικοποιητή στο αρχείο διαμόρφωσης, για παράδειγμα:








Προηγούμενος:Εικονογραφημένη Κρυπτογραφία 3η Έκδοση
Επόμενος:Βίντεο για την τάξη απασχόλησης της Silicon Valley τον Απρίλιο του 2018
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 7/2/2021 3:08:59 μ.μ. |
Να επιτρέπεται η εκκίνηση του πλαισίου οντοτήτων που δεν είναι πλέον έγκυρη __MigrationHistory πίνακα
https://www.itsvse.com/thread-3255-1-1.html

Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com