Veritabanı Model ilişkilendirmesi (EF Core Power Tools, Mapping düzenlemesi / NuGet Package Manager-Package Manager Console)

 

1.ADIM: MS SQL SERVERDAKİ TABLO YAPIMIZ



NOT:

  • Sözlük tablolarımıza otomatik artım yaptırmadık. 
  • FK ilişkilendirmelerimizi yaptık


2.ADIM: Bu ilişkileri .NET Core tarafına yansıtmak için:


2.1.YÖNTEM (EF Core Power Tools ile)


EF Core Power Tools eklentisini indirip visual studioya yüklüyoruz.


Add ile Veritabanımızı ekliyoruz: 

Ok diyerek eşleştireceğimiz tablolarımızı seçiyoruz:





OK dediğimizde eşleştirme otomatik olarak yapılacaktır. Eğer kırmızı ile olan kutucuğu işaretlememiş olsaydık, memdbContext.cs içerisine VT bağlantısı için gerekli olan  
OnConfiguring eklenmiyor. Bu bilgiyi de manüel eklememiz gerekirdi:

  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

        {

            if (!optionsBuilder.IsConfigured)

            {              optionsBuilder.UseSqlServer("Server=CORUM009;Database=dbname;Trusted_Connection=True;");

            }

        }


2.2.YÖNTEM (kendimiz yazarak yapıyoruz)

Tools menüsü altında NuGet Package Manager-Package Manager Console u açarak model güncellememizi yapıyoruz:

Scaffold-DbContext "Server=CORUM009;Database=memdb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models  -Tables KRM_ODA_BILGI,KRM_PERSONEL_BILGI,ST_GM,ST_IL,ST_ILCE,ST_KOD,ST_KOD_TIPI,ST_SUBE  –f -UseDatabaseNames

Bu işlemden sonra modelimiz ilişkileri gösterecek şekilde güncelleniyor:






3.ADIM: Mapping düzenlememizi yapıyoruz:

oda bilgi ile vm oda bilgiyi ilişkilendir. Bu ikişkilendirmeyi yaparken, kat adı bilgisini kat navigation adından al demiş olduk.



Birden fazla alanla ilişkilendirmek istiyorsak: 




4.ADIM: repository içerisinde de ilişkiyi belirtiyoruz:



5.ADIM: kullanıcıdan değer almadığımız ama modelimizde yer alan alanlara Update öncesi null atıyoruz:



Yorumlar

Bu blogdaki popüler yayınlar

ÇÖZÜLDÜ: mapper, System.BadImageFormatException: 'Could not load file or assembly 'DataAccess....Geçersiz biçimdeki bir program yüklenmek istendi

Asp.NET Core 5.0 - Kullanıcıdan Gelen Verilerin Doğrulanması Validations (Gençay Yıldız anlatımından resmedilmiştir)

Asp.NET Core 5.0 - Temel Kavramlar(User-Client-Hosting-IP-Domain-Request-Response-Layout-RenderBody-RenderSection ) (Gençay Yıldız anlatımı)