EF Core ekosistemində hansı yanaşmalar mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
Entity Framework Core ekosistemində, verilənlər bazası sxeması ilə işləmək üçün üç əsas yanaşma mövcuddur:
-
Database First: Verilənlər bazası artıq mövcuddur və EF Core bu sxemaya əsaslanaraq model sinflərini (entitilər) və
DbContextyaradır.- Üstünlüklər: Mövcud verilənlər bazası ilə sürətli başlama, sxem tamamilə bazanın nəzarətindədir.
- Çatışmazlıqlar: Verilənlər bazasında dəyişikliklər kodun yenidən yaradılmasını tələb edir, bu da xüsusi kodun üst-üstə düşməsinə səbəb ola bilər.
// Mövcud verilənlər bazasından yaratmaq üçün nümunə əmr // Scaffold-DbContext "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -
Code First: Siz C# kodunda modelləri (entitilər) və
DbContext-i təyin edirsiniz. EF Core bu təyinatlara əsaslanaraq sxeməni yaradır və ya yeniləyir və miqrasiya vasitəsilə idarə edir.- Üstünlüklər: Modellərin koduna tam nəzarət, tətbiq kod bazası ilə inteqrasiya, sxem dəyişikliklərini idarə etmək üçün miqrasiya istifadə etmək.
- Çatışmazlıqlar: Miqrasiya idarəçiliyi tələb olunur, sxemdəki dəyişikliklər hər zaman koddakı dəyişikliklərlə başlayır.
// Code First yanaşmasında model sinfi nümunəsi public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } -
Model First: Tarixən köhnə EF versiyalarında (pre-Core) mövcud olsa da, EF Core-də yerli və müstəqil yanaşma deyil; Database First və Code First ilə eyni mənada deyil. Əsasən, EF Core-də Model First, kodda modelləri yazmaq (Code First kimi) və onlardan verilənlər bazasını yaratmaqdır. Model üçün ayrıca vizual dizayner mövcud deyil, EF 6-də olduğu kimi. Buna görə, EF Core-də onu adətən Code First variantı kimi qəbul edirlər; burada modeli əl ilə təsvir edirsiniz və mövcud verilənlər bazasından istifadə etmirsiniz.
Əsas xüsusiyyətlər:
| Yanaşma | İşə başlama nöqtəsi | Verilənlər bazası sxeminin idarə olunması | Dəyişiklik üçün alətlər |
|---|---|---|---|
| Database First | Mövcud verilənlər bazası | Əl ilə verilənlər bazasında | Scaffold-DbContext |
| Code First | Modellər sinfləri və DbContext C#-da |
EF Core miqrasiyaları | Add-Migration, Update-Database |
| Model First (EF Core kontekstində) | Modellər sinfləri və DbContext C#-da (mövcud olmayan verilənlər bazası ilə) |
EF Core miqrasiyaları və ya işə salınanda yaradılması | Add-Migration, Update-Database |
Yanaşmanı seçmək layihənin başlanğıc şərtlərinə və komandanın üstünlüklərinə bağlıdır. Code First yeni EF Core layihələrində ən çox yayılmış yanaşmadır, onun elastikliyi və inkişaf prosesinə inteqrasiyası üçün əlverişlidir.