Base Entity ile Veri Denetim Bilgilerini Saklama

Base Entity: Tüm sınıflarda (varlıklarda) bulunan ortak özelliklerin toplandığı sınıftır. Farklı amaçlara hizmet eden varlıklarda ortak özellik genellikle id alanı olmaktadır. Id alanı dışında CRUD işlemine tabi tutulan veri ile ilgili yapılan işlemleri saklayan özellikler yer alır.

Bir veri parçasını kimin eklediğini veya değiştirdiğini, kaydın ne zaman eklendiği, en son ne zaman değiştirildiğini bilmek için tüm varlıklara (modeller/tablolar) bazı denetim bilgileri eklemek iyi bir alışkanlıktır.

Varlıklardaki değişiklikleri denetlemek için sıklıkla kullanılan alanlar şunlardır

ID  Birincil anahtardır. Birincil anahtarı temel varlıkta tutma eğilimindeyim.

CreatedBy  bu kaydı kimin oluşturduğunu tanımlayan int türünde bir özellik. Sisteme login olan kullanıcı idsi buraya kaydedilir.

CreatedDateTime  bu kaydın ne zaman oluşturulduğunu tanımlayan DateTime türünde bir özellik.

LastModifiedBy  bu kaydı en son kimin güncellediğini tanımlayan int türünde bir özellik. Nullable değer kabul eden bir özelliktir.

LastModifiedDateTime  DateTime türünde bir özellik.  Bu kaydın en son ne zaman güncellendiğini tanımlar. Nullable değer kabul eden bir özelliktir.

IPAddress  geçerli kullanıcının IP Adresini saklayan string türünde bir özellik

IsDeleted varlığınızda geçici silmeleri etkinleştirmek için bool türünde bir özellik. Genel bir yaklaşım olarak editör seviyesindeki kullanıcıların veri silmemeleri gerekir. Proje gereği editör ün veri silmesi etkinleştirldi ise editörün sildiği veri geçici olarak silinir. IsDeleted alanı true yapılır. Kullanıcıya IsDeleted alanı false olan veriler listelenir. Silinen veri, bildirim olarak administrator seviyesindeki kullanıcıya düşer. Administrator isterse veriyi geri getirir, isterse kalıcı olarak veritabanından siler. Bazı projelerde projenin mahiyetine göre administrator dahi veriyi kalıcı olarak silemez.

public class BaseEntity
    {
        public int Id { get; set; }
        public int CreatedBy { get; set; }
        public DateTime CreatedDateTime { get; set; }
        public int? LastModifiedBy { get; set; } 
        public DateTime? LastModifiedDateTime { get; set; }        
        public DateTime? DeletedDateTime { get; set; }
        public string IPAddress { get; set; }
        public bool IsDeleted { get; set; }
    }
    
    
base entity nin kullanımı. Tanımlanan blog sınıfı kalıtım yoluyla Base Entity de yer alan tüm özellikleri devralmaktadır.
    
public partial class Blog : BaseEntity
    { 
        public int Katid { get; set; }
        public bool? Silinemez { get; set; }
        public string Kod { get; set; }
    }

Telefon +90 505 747 42 84
Email info@devedijital.com
Adres
Tacettin Veli Mahallesi Halit Narin Caddesi Bahadır Plaza Kat:11 Daire:41 38230 Deve Dijital Melikgazi/Kayseri/Türkiye