Menistar.EntityFrameworkCore.SoftDelete
5.0.1
dotnet add package Menistar.EntityFrameworkCore.SoftDelete --version 5.0.1
NuGet\Install-Package Menistar.EntityFrameworkCore.SoftDelete -Version 5.0.1
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="Menistar.EntityFrameworkCore.SoftDelete" Version="5.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Menistar.EntityFrameworkCore.SoftDelete --version 5.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Menistar.EntityFrameworkCore.SoftDelete, 5.0.1"
#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.
// Install Menistar.EntityFrameworkCore.SoftDelete as a Cake Addin #addin nuget:?package=Menistar.EntityFrameworkCore.SoftDelete&version=5.0.1 // Install Menistar.EntityFrameworkCore.SoftDelete as a Cake Tool #tool nuget:?package=Menistar.EntityFrameworkCore.SoftDelete&version=5.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Enable soft delete for DbContext
Enable the soft delete extention for a DbContext
by calling the extention method UseSoftDelete
in the constructor of the DbContext
. Because extention methods are only available on object instance you have to use this
.
public class ApplicationDbContext : DbContext
{
public ApplicationDbContextDbContextOptions<ApplicationDbContext> options)
: base(options)
{
this.UseSoftDelete();
}
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public DbSet<Comment> Comments { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
Configure soft delete for a entity type
Soft delete must be configured for every specific entity in the model by calling the extention method HasSoftDelete
on the entity builder. The method contains a overload to use a specific property of the entity. The type of the property must be DateTime?
.
public class ApplicationDbContext : DbContext
{
public ApplicationDbContextDbContextOptions<ApplicationDbContext> options)
: base(options)
{
this.UseSoftDelete();
}
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public DbSet<Comment> Comments { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// Configure soft delete for blogs using the default shadow property.
builder.Entity<Blog>()
.HasSoftDelete();
// Configure soft delete for comments by specifying a property of type DateTime? on the Comment entity to use.
builder.Entity<Comment>
.HasSoftDelete(c => c.DeletedAt);
}
}
(Optional) Add a migration containing the changes to your model
dotnet ef migrations add AddSoftDelete
or
Add-Migration AddBlogCreatedTimestamp
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Microsoft.EntityFrameworkCore (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.