Sobes.tech
Middle

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:

  1. Database First: Verilənlər bazası artıq mövcuddur və EF Core bu sxemaya əsaslanaraq model sinflərini (entitilər) və DbContext yaradı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
    
  2. 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; }
    }
    
  3. 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.