Assembly Üzerinden Dinamik EF DbContext Yönetimi | C# .Net 8

Merhaba arkadaşlar,

https://stackify.com/entity-framework-core-tutorial/

Dinamik EF DbContext Yönetimi

 

 

Bu makalede, EF Core kullanarak DbContext’e assembly üzerinden dinamik sınıf yüklemenin nasıl yapılacağını ve projelerimize nasıl uygulayabileceğinizi göreceğiz. Bu yöntem, özellikle büyük ve değişken projelerde veri yapılarının esnek bir şekilde yönetilmesine olanak tanır.

Bunu bir proje üzerinde uygulayalım, boş ASP.Net Core Web API .Net 8 projesi başlatalım ve ardından Entity Framework Core projemize dahil edelim.

IEntity Interface Oluşturulması

  • IEntity Interface’inin Tanımlanması:

Başlangıç olarak IEntity’yi tanımlayacağız. Bu interface, tüm Entity sınıflarının implemente etmesi gereken özellikleri içerecek ve DbContext’e eklenecek class’ların IEntity implementasyonları olmasını sağlayacağız. Bu sayede, DbContext’imize dinamik olarak Entity eklemeyi mümkün kılacağız.

  • Model Sınıflarının IEntity Interface’ini Uygulaması:

Oluşturuduğumuz User modelini IEntity interfaceni implemente edeceğiz.

DbContext Oluşturulması

  • AppDbContext’in Tanımlanması:

AppDbContext adından bir class oluşturalım.

Oluşturduğumuz DbContext’te normalde Users adında bir property oluşturup kullanabiliriz. Ancak, büyüyen projelerimizde, assembly’de bulunan sınıfların dinamik olarak eklenmesini sağlayacağız. Bu yöntem, projedeki Entity sınıflarının esnek ve ölçeklenebilir bir şekilde yönetilmesine olanak tanıyacaktır.

Peki bunu nasıl yapacağız? Beraber görelim. Öncelikle, assembly içerisindeki sınıflarımızı arayacağız ve ardından bu sınıfları DbContext’e ekleyeceğiz.

Bu method ile assembly içerisindeki IEntity interface’ini implemente eden tüm sınıflar dinamik olarak DbContext’e eklenir. Şimdi bu methodu kullanalım. Kullanmak için DbContext’in OnModelCreating methodu içerisinde çağıracağız.

Bu kodda, OnModelCreating methodunda AddDbSetsFromAssembly methodunu çağırarak assembly’deki IEntity implementasyonlarını dinamik olarak DbContext’e eklemiş oluyoruz.

O zaman eklenmiş sınıfları nasıl çaığracağız? Aşağıdaki method ile DbContext’e eklenmiş sınıfları çağırabiliriz.

Örnekle bakalım o zaman;

DbContext üzerinden DbSet’lere dinamik olarak erişim sağlayarak projedeki veri modellerinin esnek bir şekilde erişim sağlamış bulunduk.

 

Bu yazımda sizlere, EF Core kullanarak DbContext’e dinamik sınıf yüklemenin nasıl yapılacağını ve projelerinizde bu yaklaşımı nasıl uygulayabileceğinizi anlattım. Umarım sizlere yol gösterici olmuştur.

Okdunuğunuz için teşekkür ederim.

 

Medium’da Yazım: Assembly Üzerinden Dinamik EF DbContext Yönetimi | C# .Net 8

.Net Hakkında Yazılarım:

Kaynaklar:

  1. https://romiller.com/2012/03/26/dynamically-building-a-model-with-code-first/
  2. https://stackoverflow.com/questions/39807101/create-table-run-time-using-entity-framework-code-first

 

You may also like...

4 Responses

  1. Fatih Tuğberk Öner dedi ki:

    Harikulade hocam yazılarınızın devamını diliyorum

  2. Onur dedi ki:

    Teşekkür ediyorum bu güzel yazıyı paylaştıgınız için..

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


Exit mobile version