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
Özellik | Tanım |
Table | Bir sınıfın eşlendiği veritabanı tablosu ve/veya şeması. |
Column | Bir özelliğin eşlendiği veritabanı sütunu. |
ForeignKey | Özelliğin bir ilişkide yabancı anahtar olarak kullanıldığını belirtir. |
DatabaseGenerated | Veritabanının bir özellik için değerleri nasıl ürettiğini belirtir. |
NotMapped | Veritabanı eşlemesinden hariç tutulacak özelliklere veya sınıflara uygulanır. |
InverseProperty | Bir gezinme özelliğinin tersini belirtir |
ComplexType | Sınıfın karmaşık bir tür olduğunu belirtir. *Şu anda EF Core’da uygulanmamaktadır. |
System.ComponentModel.Annotations attributes
Özellik | Tanım |
Key | Bir veya daha fazla özelliği Anahtar olarak tanımlar. |
Timestamp | Veritabanı 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) |