Bilmek istediğin her şeye ulaş

DTO sınıf property lerinde isnew, isdirty ve isdeleted property leri ne işe yarıyor, neden kullanılıyor ve bu property ler nasıl kullanılıyor?

mesela; isnew, DTO nesnesi yaratıldığında, isnew=true yapılıyor yapılandırıcı tarafından, method tarafından çağrılıp doldurulduktan sonra da isnew false yapılıor hemen return etmeden önce, save methodu içinde. örnek vermek gerekirse; aşağıdaki linkte ki isnew property sini nerede kullanacağız?rlacovara.blogspot.com.tr/2009/02/high-p...Düzenle
Genel anlamda dirty (kirli)'nin ne olduğunu söyleyebilirim. Daha yavaş veya uzak bir belleği temsil eden bir ara bellek (cache veya RAM), temsil ettiği bellek ile uyuşmadığında dirty bayrağını arttırır. Bu yeni bir bilgi var en kısa zamanda iki bellek eşitlenmeli anlamındadır. Temsil edilen yapı kalıcı bir bellek veya uzak bir veritabanı olabilir.
  • Paylaş
Benim anladığım kadarı ile buradaki DTO nesneleri için bahsedilen yapıda veri tabanında gerçekleştirilen işlemleri takip edebilmek için flag (işaretleme diyelim) kullanılmış.

Yani; varsayalım ki veri tabanında ID'si 5 olan bir kullanıcı kaydı var. Fullname, Username, Email... Vs property'leri olsun.

Veri tabanında bu kayıt üzerinde değişiklik yaparken, veriyi çektiğinizde bir DTO nesnesi oluşturuyorsunuz ve bu esnada nesne üzerine bir flag koyuluyor, "bu kayıt henüz değişiklik yapılmamış bir kayıt" gibi.

IsNew property'sinin kullanımı da benim anladığım kadarı ile bu şekilde tasarlanmış. Eğer veri tabanına yeni bir kullanıcı kaydı eklerseniz IsNew property'si true hale geliyor. Yani bu yeni eklenmiş bir kayıttır. Dolayısıyla hangi nesneler üzerinde değişiklik yapıldı ve dolayısıyla hangilerinin update edilmesi gerektiği de bu şekilde flag (işaretleme) yöntemi ile anlaşılabiliyor.

Zaten şu cümlede açıklanmış makalede:

"...the only thing I’m putting in DTOBase is an IsNew flag that can be used to indicate if a DTO contains newly created data (as opposed to data that was pulled from the database)...."

Bu yapı LINQ to SQL ve Entity Framework gibi Object Relational Mapping yapılar içinde var. Veri tabanından alınan bir kayıt, ilgili nesne üzerinde sürekli olarak takip edilir, buna "Object Tracking" deniyor. Bu özelliği isterseniz herhangi bir işlem bölümü içinde kapatabiliyorsunuz. Bu sayede nesne üzerinde yapılan değişiklikler takip ediliyor ve veri tabanında da bu değişiklikler güncel hale getiriliyor.
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

324 Görüntülenme5 Takipçi2 Yanıt