Idam.Libs.EF
1.0.0
Suggested Alternatives
Additional Details
This package was moved to Idam.EFTimestamps.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Idam.Libs.EF --version 1.0.0
NuGet\Install-Package Idam.Libs.EF -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="Idam.Libs.EF" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Idam.Libs.EF --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Idam.Libs.EF, 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.
// Install Idam.Libs.EF as a Cake Addin #addin nuget:?package=Idam.Libs.EF&version=1.0.0 // Install Idam.Libs.EF as a Cake Tool #tool nuget:?package=Idam.Libs.EF&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Idam.Libs.EF
Idam.Libs.EF is .Net Core (C#) for Entity Framework (EF) Utils.
Features:
- Soft delete
- Timestamps (CreatedAt, UpdatedAt)
Get started
run this command to install
Install-Package Idam.Libs.EF
or
dotnet tool install Idam.Libs.EF
Usage
Using Timestamps
- Add following code in your context
using Idam.Libs.EF.Extensions;
public class MyDbContext : DbContext
{
public override int SaveChanges(bool acceptAllChangesOnSuccess)
{
ChangeTracker.Entries().AddTimestamps();
return base.SaveChanges(acceptAllChangesOnSuccess);
}
public override Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default)
{
ChangeTracker.Entries().AddTimestamps();
return base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);
}
}
- Inherite ITimeStamps to your entity
using Idam.Libs.EF.Interfaces;
public class Foo : ITimeStamps
{
public int Id { get; set; }
public string Name { get; set; } = default!;
public string? Description { get; set; }
public long CreatedAt { get; set; }
public long UpdatedAt { get; set; }
}
Using SoftDelete
- Add following code in your context
using Idam.Libs.EF.Extensions;
public class MyDbContext : DbContext
{
public override int SaveChanges(bool acceptAllChangesOnSuccess)
{
ChangeTracker.Entries().AddTimestamps();
return base.SaveChanges(acceptAllChangesOnSuccess);
}
public override Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default)
{
ChangeTracker.Entries().AddTimestamps();
return base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
var entityTypes = modelBuilder.Model.GetEntityTypes();
modelBuilder.AddSoftDeleteFilter(entityTypes);
}
}
- Inherite ISoftDelete to your entity
using Idam.Libs.EF.Interfaces;
public class Foo : ISoftDelete
{
public int Id { get; set; }
public string Name { get; set; } = default!;
public string? Description { get; set; }
public long? DeletedAt { get; set; }
}
Using IGuidEntity
I create a interface to implement Id as Guid instead of int.
using Idam.Libs.EF.Interfaces;
public class Foo : IGuidEntity
{
public Guid Id { get; set; }
public string Name { get; set; } = default!;
public string? Description { get; set; }
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net7.0
- Microsoft.EntityFrameworkCore (>= 7.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
First release