SSL Sertifikası + Sınırsız İçerik + Full SEO Uyumlu + Full Mobil Uyumlu.
Üstelik İsterseniz Yapay Zeka Hukuk Asistanı Seçeneğiyle
Entity Framework Soft Delete Kullanımı
Entity Framework, birçok yazılım geliştirme projesinde kullanılan bir veri erişimi teknolojisidir. Bu teknoloji sayesinde veritabanı işlemleri daha kolay, hızlı ve güvenilir hale getirilebilmektedir. Aynı şekilde, verilerin silinmesi de kolay bir şekilde gerçekleştirilebilmektedir. Ancak bazı durumlarda, silinen verilerin geri döndürülmesi, yani recovery işlemi yapılması gerekebilir.
Soft Delete, veritabanında yer alan verilerin aslında tamamen silinmeden üzerine bir flag atanmasıdır. Bu sayede verilerin tamamen silinmesi yerine, silinmiş olarak işaretlenerek veri kaybı olmadan geri dönüşü sağlanabilmektedir. Bu yazıda, Entity Framework Soft Delete kullanımı hakkında detaylı bilgi vereceğiz.
Entity Framework ile Soft Delete
Entity Framework ile Soft Delete işlemi yapmak oldukça kolay ve pratiktir. Bunu gerçekleştirmek için, veritabanı tabloları üzerinde bir takım değişiklikler yapılması gerekmektedir.
Soft Delete Özelliği eklemek istediğimiz tabloların (Örneğin: Kullanıcılar) yanına bir de bool tipinde silme işlemi yapıldığını gösteren bir Property eklememiz gerekir. Bu özellik veritabanındaki tablolarımızda kullanıcılara silindi mi yoksa silinmedi mi durumunu gösteren bir alan içerir. Bu alanın ismi genellikle \"IsDeleted\" olarak adlandırılır.
IsDeleted için varsayılan değer false olarak atanır o yüzden tabloda elemanlar silinmediğinde IsDeleted değişkeni false olarak kalır bunun anlamı bu kayıt silinmeden önceye kadar uygulamanın sağlıklı çalışır.
EfCore Configration tarafındaki işlemler
Soft Delete yapabilmek için, entity üzerinde Fluent API ile ayarlanması gereken birkaç nokta vardır.
```C#
public class MyContext : DbContext
{
public DbSet
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity
}
}
```
Welcome to our C# tutorial.
Our C# tutorial is designed for beginners and professionals.
C# is an object-oriented programming language developed by Microsoft. As of now C# is one of the most popular programming languages in the world.
Let's start our first C# project.
ENTITY
```C#
public class BaseEntity
{
public int Id { get; set; }
public bool IsDeleted { get; set; } = false;
public DateTime? DeletedAt { get; set; }
public string DeletedBy { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public string CreatedBy { get; set; }
public DateTime? UpdatedAt { get; set; }
public string UpdatedBy { get; set; }
}
```
Not: Tabloyu silmeden Ayrıca \"DeletedAt\",\"DeletedBy\",\"CreatedAt\",\"CreatedBy\",\"UpdatedAt\" değerlerini de ekledik.
Bir tabloya Soft Delete özelliği ekledikten sonra, tabloya erişmek için standardı çağırmanın yanı sıra, silinmemiş olanları çağırmak için yeni bir yöntem kullanmamız gerekiyor. Bu yöntem, veritabanı işlemleri için filtreler kullanmaktır.
İşte bu filtrelerle oluşturulan sorgular şöyle çalışır: Filtre, mümkün olan her sorguya dahil edilir. Bu sayede silinmiş veriler yine de veritabanından kaldırılmaz ancak sorgu yapıldığında sonuçların sadece silinmemiş olanları belirtilir.
```C#
public class UserConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder
{
entity.Property(x => x.FirstName)
.HasMaxLength(50)
.IsRequired();
entity.Property(x => x.LastName)
.HasMaxLength(50)
.IsRequired();
entity.Property(x => x.Email)
.HasMaxLength(100)
.IsRequired();
entity.HasIndex(x => x.Email)
.IsUnique();
entity.Property(x => x.Password)
.HasMaxLength(250)
.IsRequired();
entity.HasQueryFilter(x => !x.IsDeleted);
}
}
```
Yukarıda yapmış olduğumuz konfigürasyon işlemlerinde `HasQueryFilter` metodu kullanılmaktadır. Bu metodun içerisine bir lamba ifadesi vererek sadece silinmemiş olan kayıtların listelenmesini sağlayabiliriz. Bu sayede silinmiş veriler hala veritabanında gözükse de çalışanızdaki data daha temiz ve daha az veri içererek daha hızlı bir şekilde işlem yapabilirsiniz.
Sık Sorulan Sorular
Q: Ne zaman Entity Framework Soft Delete yöntemini kullanmalıyım?
A: Soft Delete, entitylerin veritabanından silinmesi yerine silinmiş olarak işaretlenmesi prensibine dayandığı için genellikle geri dönüş işlemlerinin gerektiği durumlarda kullanılır. Bu sayede veri kaybı olmadan, veriler geri döndürülebilir.
Q: Entity Framework Soft Delete yapmak daha mı yavaşdır?
A: Soft Delete özelliği, verilerin veritabanından silinmesi yerine silinmiş olarak işaretlenmesi prensibine dayandığı için, bazı durumlarda veri erişimi işlemlerinin yavaşlamasına neden olabilir. Ancak, silinmiş verilerin geri dönüşü için gerekli olduğu durumlarda kullanılması önerilmektedir.
Q: Kodumda silinmiş kayıtları nasıl ayırt edebilirim?
A: Silinmiş kayıtları ayırt etmek için, tablonuza 'IsDeleted' adlı bir bool tipinde Property eklemeniz gerekiyor. Silme işlemi yapıldığında, bu Property true değerini alacaktır. Bu sayede, silinmiş kayıtları ayırt edebilirsiniz."
Entity Framework Soft Delete Kullanımı
Entity Framework, birçok yazılım geliştirme projesinde kullanılan bir veri erişimi teknolojisidir. Bu teknoloji sayesinde veritabanı işlemleri daha kolay, hızlı ve güvenilir hale getirilebilmektedir. Aynı şekilde, verilerin silinmesi de kolay bir şekilde gerçekleştirilebilmektedir. Ancak bazı durumlarda, silinen verilerin geri döndürülmesi, yani recovery işlemi yapılması gerekebilir.
Soft Delete, veritabanında yer alan verilerin aslında tamamen silinmeden üzerine bir flag atanmasıdır. Bu sayede verilerin tamamen silinmesi yerine, silinmiş olarak işaretlenerek veri kaybı olmadan geri dönüşü sağlanabilmektedir. Bu yazıda, Entity Framework Soft Delete kullanımı hakkında detaylı bilgi vereceğiz.
Entity Framework ile Soft Delete
Entity Framework ile Soft Delete işlemi yapmak oldukça kolay ve pratiktir. Bunu gerçekleştirmek için, veritabanı tabloları üzerinde bir takım değişiklikler yapılması gerekmektedir.
Soft Delete Özelliği eklemek istediğimiz tabloların (Örneğin: Kullanıcılar) yanına bir de bool tipinde silme işlemi yapıldığını gösteren bir Property eklememiz gerekir. Bu özellik veritabanındaki tablolarımızda kullanıcılara silindi mi yoksa silinmedi mi durumunu gösteren bir alan içerir. Bu alanın ismi genellikle \"IsDeleted\" olarak adlandırılır.
IsDeleted için varsayılan değer false olarak atanır o yüzden tabloda elemanlar silinmediğinde IsDeleted değişkeni false olarak kalır bunun anlamı bu kayıt silinmeden önceye kadar uygulamanın sağlıklı çalışır.
EfCore Configration tarafındaki işlemler
Soft Delete yapabilmek için, entity üzerinde Fluent API ile ayarlanması gereken birkaç nokta vardır.
```C#
public class MyContext : DbContext
{
public DbSet
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity
}
}
```
Welcome to our C# tutorial.
Our C# tutorial is designed for beginners and professionals.
C# is an object-oriented programming language developed by Microsoft. As of now C# is one of the most popular programming languages in the world.
Let's start our first C# project.
ENTITY
```C#
public class BaseEntity
{
public int Id { get; set; }
public bool IsDeleted { get; set; } = false;
public DateTime? DeletedAt { get; set; }
public string DeletedBy { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public string CreatedBy { get; set; }
public DateTime? UpdatedAt { get; set; }
public string UpdatedBy { get; set; }
}
```
Not: Tabloyu silmeden Ayrıca \"DeletedAt\",\"DeletedBy\",\"CreatedAt\",\"CreatedBy\",\"UpdatedAt\" değerlerini de ekledik.
Bir tabloya Soft Delete özelliği ekledikten sonra, tabloya erişmek için standardı çağırmanın yanı sıra, silinmemiş olanları çağırmak için yeni bir yöntem kullanmamız gerekiyor. Bu yöntem, veritabanı işlemleri için filtreler kullanmaktır.
İşte bu filtrelerle oluşturulan sorgular şöyle çalışır: Filtre, mümkün olan her sorguya dahil edilir. Bu sayede silinmiş veriler yine de veritabanından kaldırılmaz ancak sorgu yapıldığında sonuçların sadece silinmemiş olanları belirtilir.
```C#
public class UserConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder
{
entity.Property(x => x.FirstName)
.HasMaxLength(50)
.IsRequired();
entity.Property(x => x.LastName)
.HasMaxLength(50)
.IsRequired();
entity.Property(x => x.Email)
.HasMaxLength(100)
.IsRequired();
entity.HasIndex(x => x.Email)
.IsUnique();
entity.Property(x => x.Password)
.HasMaxLength(250)
.IsRequired();
entity.HasQueryFilter(x => !x.IsDeleted);
}
}
```
Yukarıda yapmış olduğumuz konfigürasyon işlemlerinde `HasQueryFilter` metodu kullanılmaktadır. Bu metodun içerisine bir lamba ifadesi vererek sadece silinmemiş olan kayıtların listelenmesini sağlayabiliriz. Bu sayede silinmiş veriler hala veritabanında gözükse de çalışanızdaki data daha temiz ve daha az veri içererek daha hızlı bir şekilde işlem yapabilirsiniz.
Sık Sorulan Sorular
Q: Ne zaman Entity Framework Soft Delete yöntemini kullanmalıyım?
A: Soft Delete, entitylerin veritabanından silinmesi yerine silinmiş olarak işaretlenmesi prensibine dayandığı için genellikle geri dönüş işlemlerinin gerektiği durumlarda kullanılır. Bu sayede veri kaybı olmadan, veriler geri döndürülebilir.
Q: Entity Framework Soft Delete yapmak daha mı yavaşdır?
A: Soft Delete özelliği, verilerin veritabanından silinmesi yerine silinmiş olarak işaretlenmesi prensibine dayandığı için, bazı durumlarda veri erişimi işlemlerinin yavaşlamasına neden olabilir. Ancak, silinmiş verilerin geri dönüşü için gerekli olduğu durumlarda kullanılması önerilmektedir.
Q: Kodumda silinmiş kayıtları nasıl ayırt edebilirim?
A: Silinmiş kayıtları ayırt etmek için, tablonuza 'IsDeleted' adlı bir bool tipinde Property eklemeniz gerekiyor. Silme işlemi yapıldığında, bu Property true değerini alacaktır. Bu sayede, silinmiş kayıtları ayırt edebilirsiniz."
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle