18 Ağustos 2020 Salı

IValidatableObject Nedir?












Merhabalar,

Hangi tür proje olursa olsun kullanıcıdan aldığımız verilerin bir sistemde storelanması durumu söz konusuysa eğer bu durumda son user tarafından girilen veriler direkt olarak sisteme alınmadan önce denetlenmelidir. Aksi takdirde veriyi sadece kaydetmiş oluruz, developerlar verileri düzgün toplayabilmek adına farklı yöntemlere başvurmaktadır. 


Kullanıcıyı kısıtlamazsak aşağıdaki gibi durumlarla karşı karşıya kalabiliriz. 

  • Mail bölümünde telefon
  • Telefon hanesi 2-3 hane içeren data
  • Kullanıcı adı girilmemiş vs.

Örnekleri çoğaltmamız mümkündür :) Verileri doğrulamazsak istediğimiz türde veri girişi yapılmış mı kontrol etmezsek rapolandırmamız gereken bir sistemde oturur ağlarız, alakasız verilerden ötürü....


Entity Framework ile geliştirilmiş proje özelliklerin doğrulanması için çeşitli imkanlar sunmaktadır. Doğrulama işlemlerini iki farklı seviyede yapmamız mümkündür. 

  • Entity
  • Context


Doğrulama kuralları(Validation Rules)

Entity seviyesinde iki şekilde yaptırılabilir. 

  • Nitelik(Attribute) bazlı
  • IValidatableObject arayüzünün implementasyonu ile. 

Context seviyesinde ise ValidateEntity isimli daha önceden tanımlanmış olan sanal metodunun ezilmesiyle (override) yapabiliriz. 


IValidatableObject implement etmiş bir class örneği aşağıdaki gibidir.
Projemize öncelikle aşağıdaki gibi tanımlama yapmamız gerekecektir. 

using System.ComponentModel.DataAnnotations; 

class Ogrenci : IValidatableObject

{

    public int OgrenciID { get; set; }

    public string Adi { get; set; }

    public string SoyAdi { get; set; }

    public string Memleketi { get; set; }

 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)

    {

 

    }

}


 “IValidatableObject” Interface’ini implement ettikten sonra “Validate” isimli metodun içinde validasyonlar yani kurallarımızı eklememiz gerekecektir. 

 if (Adi.Length < 5 || Adi.Length > 35)
{
yield return new ValidationResult("Adınız 5'ten büyük, 35'ten küçük olmalıdır.", new List<string> { "Adi" });

}

Projedeki validate metodu içine kurallar yazılır ve denetim yapılır, kullanıcı veri girişi yaparken de kafasına göre istediğini yazamaz bizim belirttiğimiz şekilde kurallara uymak zorunda kalacaktır. Projelerimizde veri denetimi noktasında IValidatableObject kullanabiliriz. 

Hiç yorum yok:

Yorum Gönder

SQL Çalışma Sorularının Çözümü

 -Ürünler tablosundaki ürünlerden Rengi siyah,silver ya da multi renkte olanları fiyat bilgisine göre büyükten küçüğe getirilip gösterilecek...