Entity Framework Core’de Soft Delete kullanımı

Merhaba Arkadaşlar,

Bir önceki makalede global query filteleri konusuna değinmiştik. Hatırlarsanız entity bazında global query eklemiştik ve soft delete özelliğini kullanacak her entity için bunu tanımlamak zorundaydık. Bu makalede soft delete özelliği olan tüm entity’lere otomatik olarak global query uygulanmasını anlatacağım. Ben soft delete dedim ama SaaS ürün geliştiriyorsanız tenant lar vb içinde aynı mantığı kullanabilirsiniz.

Entity Framework Core - Soft Delete

Öncelikle ISoftDeletable isminde bir interface oluşturalım

Daha sonra soft delete için yeni bir extension ya da mevcut ortak kullandığınız extension dosyasına aşağıda vermiş olduğum kodu yapıştırın.

Böylelikle AddSoftDeleteQueryFilter metodu çağrıldığında filtreleme işlemini gerçekleştiren sorgumuz ilgili entity için çağrılacak. Son olarak context’e aşağıda vermiş olduğum kodu ekleyin

Evet gördüğünüz gibi tüm entity’leri teker teker kontrol edip soft delete özelliğine sahip olanlara global olarak query filtresi eklemiş olduk. Artık ilgili entity üzerinde bir işlem yaptığınızda query’e deleted_at IS NULL ifadesinin otomatik olarak eklendiğini göreceksiniz. Bu dersimizde bu kadar, bir sonra ki derste görüşmek üzere (: