Entity Framework Core Data Annotations

Entity Framework Core’un varsayılan davranışını geçersiz kılmanızı sağlayan diğer bir deyişler entity’ler üzerinde konfigürasyon ayarlarını yapmamızı sağlayan iki başlık vardır. Bunlar Fluent API ve DataAnnotation’dır. Bu yazımızda Data Annotations kavramını inceleyeceğiz. Fluent API için aşağıda ki linkte ki makalemi inceleyebilirsiniz.

Data Annotations, sınıf (entity) veya özellik (property) hakkında meta verileri belirtmek için bir sınıfa veya özelliğe yerleştirebileceğiniz bir tür özellik belirleyici etiketlerdir. Entity Framework Core, System.ComponentModel.DataAnnotations.Schema ve System.ComponentModel.DataAnnotations namespace’i alanlarında tanımlanan özellikleri kullanarak ayarlamaları yapar.

System.ComponentModel.DataAnnotations.Schema Özellikleri

ÖzellikTanım
TableBir sınıfın eşlendiği veritabanı tablosu ve/veya şeması.
ColumnBir özelliğin eşlendiği veritabanı sütunu.
ForeignKeyÖzelliğin bir ilişkide yabancı anahtar olarak kullanıldığını belirtir.
DatabaseGeneratedVeritabanının bir özellik için değerleri nasıl ürettiğini belirtir.
NotMappedVeritabanı eşlemesinden hariç tutulacak özelliklere veya sınıflara uygulanır.
InversePropertyBir gezinme özelliğinin tersini belirtir
ComplexTypeSınıfın karmaşık bir tür olduğunu belirtir. *Şu anda EF Core’da uygulanmamaktadır.

System.ComponentModel.Annotations attributes

ÖzellikTanım
KeyBir veya daha fazla özelliği Anahtar olarak tanımlar.
TimestampVeritabanı sütununun veri türünü rowversion olarak belirtir.
ConcurrencyCheckÖzelliğin eşzamanlılık denetimlerine dahil edildiğini belirtir.
RequiredÖzelliğin değerinin gerekli olduğunu belirtir.
MaxLengthÖzellik değerinin izin verilen maksimum uzunluğunu ayarlar (dize veya dizi)
StringLengthÖzellik değerinin izin verilen maksimum uzunluğunu ayarlar (dize veya dizi)