Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 37510|Atbildi: 1

[Avots] Datu bāzes inicializācijas stratēģija EF 6 Code-First

[Kopēt saiti]
Publicēts 17.04.2019 15:56:46 | | |
Jūs jau esat izveidojis datu bāzi pēc pirmās lietojumprogrammas "Code-First" palaišanas, bet kas tas ir pēc otrās reizes? Vai katru reizi, kad tiek palaista lietojumprogramma, tiek izveidota jauna datu bāze? Kā ar ražošanas vidi? Kā mainīt datu bāzi, mainot domēna modeli? Lai apstrādātu šos scenārijus, jāizmanto kāda no datu bāzes inicializācijas politikām.

Ir četras dažādas datu bāzes inicializācijas stratēģijas:

  • Izveidot datu bāziIfNotExists:Tas irNoklusējumainicializācijas procedūra. Kā norāda nosaukums, tas izveidos datu bāzi, ja tā nepastāvēs saskaņā ar konfigurāciju. Tomēr, ja maināt modeļa klasi un pēc tam palaižat lietojumprogrammu ar šo inicializatoru, tiek izmests izņēmums.
  • DropCreateDatabaseIfModelChanges: ja modeļa klase (entītiju klase) ir mainījusies, šis inicializators izdzēsīs esošo datu bāzi un izveidos jaunu. Tāpēc jums nav jāuztraucas par datu bāzes shēmu uzturēšanu, mainoties modeļu klasēm.
  • DropCreateDatabaseAlways: kā norāda nosaukums, šis inicializators izdzēš esošo datu bāzi katru reizi, kad palaižat lietojumprogrammu, neatkarīgi no tā, vai modeļa klase ir mainījusies. Tas ir noderīgi, ja katru reizi, kad palaižat lietojumprogrammu, piemēram, izstrādājot lietojumprogrammu, ir nepieciešama jauna datu bāze.
  • Pielāgots datu bāzes inicializētājs: Varat arī izveidot savu pielāgoto inicializatoru, ja iepriekš minētais neatbilst jūsu prasībām vai ja vēlaties izmantot iepriekš minēto inicializatoru, lai veiktu citu datu bāzu inicializācijas procesu.

Lai izmantotu kādu no iepriekš minētajām DB inicializācijas stratēģijām, ir jāiestata DB inicializētājs, izmantojot klasi datu bāzes konteksta klasē, kā parādīts tālāk:




Varat arī izveidot pielāgotu datu bāzes inicializatoru, pārmantojot vienu no inicializatoriem, kā parādīts tālāk.




Iepriekš minētajā piemērā SchoolDBInitializer ir pielāgota inicializētāja klase, kas atvasināta no CreateDatabaseIfNotExists. Tādējādi datu bāzes inicializācijas kods tiek atdalīts no konteksta klases.

DB inicializētāja iestatīšana konfigurācijas failā

Konfigurācijas failā varat arī iestatīt db inicializatoru. Piemēram, lai iestatītu noklusējuma sākotnējās vērtības iestatījumu app.config:




Pielāgotu datu bāzes inicializatoru var iestatīt šādi:




Aizvērt DB inicializatoru

Varat izslēgt lietojumprogrammas datu bāzes inicializatoru.Pieņemot, ka nevēlaties zaudēt esošos datus ražošanā, varat aizvērt inicializatoru, šādi:



Varat arī izslēgt inicializatoru konfigurācijas failā, piemēram:








Iepriekšējo:Ilustrētā kriptogrāfija 3. izdevums
Nākamo:Silīcija ieleja 2018. gada aprīļa nodarbinātības klases video
 Saimnieks| Publicēts 07.02.2021 15:08:59 |
Atļaut Entity Framework startēt vairs nederīgu __MigrationHistory tabulu
https://www.itsvse.com/thread-3255-1-1.html

Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com