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:
|