AB tundides on õpitud MS SQL Server 2022,
Code First ja Database First Migration
- SISSEJUHATUS
Käesoleva kodutöö eesmärgiks on omandada praktilised oskused Entity Framework’i
migratsioonimehhanismide kasutamisel. Uurin ja võrdlen kahte erinevat lähenemist: - Code First Migration – kus andmemudel defineeritakse C# klassides ja andmebaas
genereeritakse automaatselt - Database First Migration – kus andmebaas luuakse esmalt käsitsi ja C# klassid
genereeritakse andmebaasi struktuuri põhjal
Projekti aluseks võtsin GitHub repositooriumist
https://github.com/IngvarDe/DatabaseTask saadud koodipõhja, mille forkisin oma GitHub
kontosse ja kloonisin kohalikku kausta. - PROJEKTI STRUKTUUR JA ETTEVALMISTUS
Pärast projekti avamist Visual Studio 2022’s näen järgmist struktuuri:

2.1. SQL Server’i algolukord
Enne migratsioonide alustamist kontrollin SQL Server LocalDB olukorda.

Andmebaasiserver sisaldab ainult süsteemi andmebaase (master, model, msdb, tempdb).
See kinnitab, et alustame puhtalt lehelt.
- CODE FIRST MIGRATION
3.1. Andmemudeli analüüs
Code First lähenemise puhul on andmemudel defineeritud C# klassides. Projekti
põhimudeliks on Employee klass:

Employee mudel sisaldab järgmisi omadusi: Id, FirstName, LastName, email, dateofbirth
3.2. DbContext konfigureerimine
Andmebaasi konteksti klass määratleb ühenduse andmebaasiga:

DbContext sisaldab DbSet omadust tabeli defineerimiseks.
3.3. Connection String konfigureerimine
Seadistan connection string’i Code First migratsiooni jaoks:

Kasutatud connection string ühendab LocalDB serveriga ja loob andmebaasi nimega
“DatabaseTask_CodeFirst”.
3.4. Migration’i genereerimine
Käivitan Add-Migration käsu migration’i loomiseks:

Käsk lõi migration faili, mis defineerib andmebaasi struktuuri muudatused.
3.5. Andmebaasi uuendamine
Rakendan migration Update-Database käsuga:

Migration rakendati edukalt ja andmebaas loodi.
3.6. Migration failide kontroll
Code First migration lõi automaatselt Migrations kausta:

3.7. Code First tulemused SQL Serveris
Pärast migration’i rakendamist on SQL Serveris loodud andmebaas:

Code First migration lõi automaatselt DatabaseTask_CodeFirst andmebaasi.
3.8. Loodud tabelite kontroll
Code First migration lõi tabelid Employee mudeli põhjal:

Tabel sisaldab kõiki Employee klassi omadusi vastavaid veerge.
- DATABASE FIRST MIGRATION
4.1. Vajalike failide kustutamine
Database First lähenemise jaoks kustutan olemasolevad mudelid:


PÄRAST kustutamist:

Failid edukalt kustutatud. Nüüd saan alustada Database First lähenemisega.
4.2. SQL andmebaasi käsitsi loomine
Database First puhul loon esmalt andmebaasi käsitsi SQL skriptiga:

SQL skript loob DatabaseTask_DatabaseFirst andmebaasi koos Departments ja
Employees tabelitega.