Fluent Api Nedir?

Fluent Api, Entity Framework Code First yapısını kullandığımızda veri tabanı classlarımızı ve bu classlarımızın ilişkilerini oldukça geniş bir şekilde yapılandırmamızı sağlayan bir yapıdır. Primary key, foreign key, max length, ilişkiler gibi oldukça geniş bir yelpazesi olan bu yapı işlerimizi oldukça kolaylaştırmaktadır. Data Annotation gibi direkt olarak classlarımızı tanımlarken değil de ayrı olarak klasör yapısında map etmemize olanak sağlar. Ayrıca Data Annotation ile Fluent Api arasında ki en büyük fark Fluent Api ile veri tabanı oluşturduktan sonra değil de veri tabanı oluşturulurken işlem görülmesine olanak sağlıyor. Peki bunun ile ne demek istiyoruz?

Hemen bir örnek ile durumu açıklayalım.

Örneğin bir Article adında veritabanı classımız olsun.

Burada bir Article classı oluşturduk ve ilgili propertieleri verdik. Kendine has propertieleri ve Category ile aralarında bir ilişkisi var. Fluent Api ile yapılandırmak için öncelikle Mappings adında bir klasör oluşturuyorum ve burada ArticleMap adında bir class oluşturuyorum.

fluent api konfigurasyon

Evet yukarı bulunan görseldeki örneğimizi inceleyelim.

Fluent Api kullanabilmek için EntityTypeBuilder classını kullanmamız gerekiyor. Bu class yukarıda görüldüğü üzere generic bir yapıda ve bizlere constructor içerisinde bir builder özelliği sunuyor. Şimdi incelemeye başlarsak örnek olarak

HasKey: Id alanımızı primary key olarak yapılandırmamızı sağlıyor.

ValueGeneratedOnAdd: Id alanımızın birer birer gelen veriye göre artmasını sağlıyor.

HasMaxLength: Propertiemizin maksimum ne kadar alan tutması gerektiğini yapılandırmamızı sağlıyor.

IsRequired: Bu alanın zorunlu olması gerektiğini yapılandırıyor. Varsayılan olarak true şeklindedir. Eğer alanın zorunlu olmasını istemiyorsak false yazmak yerine bu IsRequired’i hiç kullanmayabiliriz.

HasColumnType: Alanın ne tipte tutulması gerektiğini yapılandırmamızı sağlıyor.

HasOne: Bu oldukça önemlidir. Eğer classımızda bir ilişki varsa onu yapılandırmamıza olanak sağlıyor.

ToTable: Veritabanında görünecek isim.

HasData: Yazımıza başlarken Data Annotation ile Fluent Api arasındaki en büyük farktan bahsetmiştik. Fluent Api ile yaptığımız konfigürasyonlar veri tabanı oluştuktan sonra değil de veri tabanı oluşurken işleme başlıyor.

Bunlar sadece kullanabileceğimiz konfigürasyon ayarlarından bazılarıydı. Fluent Api ile daha bir çok konfigürasyon yapmak mümkün.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir