EfCore.SoftDelete.Tapash 1.0.0

dotnet add package EfCore.SoftDelete.Tapash --version 1.0.0
                    
NuGet\Install-Package EfCore.SoftDelete.Tapash -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EfCore.SoftDelete.Tapash" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EfCore.SoftDelete.Tapash" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="EfCore.SoftDelete.Tapash" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EfCore.SoftDelete.Tapash --version 1.0.0
                    
#r "nuget: EfCore.SoftDelete.Tapash, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EfCore.SoftDelete.Tapash@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EfCore.SoftDelete.Tapash&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=EfCore.SoftDelete.Tapash&version=1.0.0
                    
Install as a Cake Tool

EfCore.SoftDelete.Tapash

NuGet Build Status License


Overview

EfCore.SoftDelete.Tapash is a NuGet package that adds soft delete support for Entity Framework Core models using a simple [SoftDelete] attribute.
It automatically applies global query filters to exclude soft-deleted entities and handles soft delete logic transparently in your DbContext.


Features

  • Soft delete via [SoftDelete] attribute on entity boolean property
  • Automatic global query filter applied in EF Core DbContext
  • Compatible with .NET 8.0 and EF Core 7.0+
  • Minimal configuration needed
  • Works seamlessly with existing EF Core queries

Installation

Install via NuGet CLI:

dotnet add package EfCore.SoftDelete.Tapash

Or via Visual Studio NuGet Package Manager UI by searching for EfCore.SoftDelete.Tapash.


Usage
1. Add [SoftDelete] attribute to your entity class
csharp
Copy
Edit
using EfCore.SoftDelete;

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }

    [SoftDelete]
    public bool IsDeleted { get; set; }
}
2. Configure DbContext to apply the soft delete filter
In your DbContext class, override OnModelCreating and call the extension method:

csharp
Copy
Edit
using EfCore.SoftDelete;

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.ApplySoftDeleteFilter();
    base.OnModelCreating(modelBuilder);
}
3. Use your context as usual
Calling context.Remove(entity) will mark the entity as deleted (set IsDeleted = true) instead of physically deleting it.

Queries will automatically exclude entities where IsDeleted == true.

To query including deleted entities, you can explicitly ignore the filter in LINQ.

Advanced
Customize soft delete behavior by extending or overriding the default attribute or filter.

Support for bulk soft delete and restore operations (planned for future releases).

Contributing
Contributions are welcome! Please submit issues or pull requests on the GitHub repository.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 125 5/23/2025