BB84.EntityFrameworkCore.Entities
5.0.916
See the version list below for details.
dotnet add package BB84.EntityFrameworkCore.Entities --version 5.0.916
NuGet\Install-Package BB84.EntityFrameworkCore.Entities -Version 5.0.916
<PackageReference Include="BB84.EntityFrameworkCore.Entities" Version="5.0.916" />
<PackageVersion Include="BB84.EntityFrameworkCore.Entities" Version="5.0.916" />
<PackageReference Include="BB84.EntityFrameworkCore.Entities" />
paket add BB84.EntityFrameworkCore.Entities --version 5.0.916
#r "nuget: BB84.EntityFrameworkCore.Entities, 5.0.916"
#:package BB84.EntityFrameworkCore.Entities@5.0.916
#addin nuget:?package=BB84.EntityFrameworkCore.Entities&version=5.0.916
#tool nuget:?package=BB84.EntityFrameworkCore.Entities&version=5.0.916
BB84.EntityFrameworkCore.Entities
This package provides the default concrete implementations of the entity abstractions defined in BB84.EntityFrameworkCore.Entities.Abstractions.
Installation
dotnet add package BB84.EntityFrameworkCore.Entities
Implementations
Each abstract class mirrors the interface hierarchy. Convenience overloads follow the same defaulting pattern as the interfaces (TToken → byte[], TKey → Guid, TCreator/TEditor → string/string?).
| Abstract class | Implements | Notes |
|---|---|---|
IdentityEntity<TKey, TToken> |
IIdentityEntity<TKey, TToken> |
|
IdentityEntity<TKey> |
IIdentityEntity<TKey> |
TToken = byte[] |
IdentityEntity |
IIdentityEntity |
TKey = Guid |
AuditedEntity<TKey, TCreator, TEditor, TToken> |
IAuditedEntity<TKey, TCreator, TEditor, TToken> |
|
AuditedEntity<TKey, TCreator, TEditor> |
IAuditedEntity<TKey, TCreator, TEditor> |
TToken = byte[] |
AuditedEntity<TKey> |
IAuditedEntity<TKey> |
TCreator/TEditor = string/string? |
AuditedEntity |
IAuditedEntity |
TKey = Guid |
FullAuditedEntity<TKey, TCreator, TEditor, TToken> |
IFullAuditedEntity<TKey, TCreator, TEditor, TToken> |
Adds CreatedAt, EditedAt |
FullAuditedEntity<TKey, TCreator, TEditor> |
IFullAuditedEntity<TKey, TCreator, TEditor> |
TToken = byte[] |
FullAuditedEntity<TKey> |
IFullAuditedEntity<TKey> |
|
FullAuditedEntity |
IFullAuditedEntity |
TKey = Guid |
CompositeEntity<TToken> |
ICompositeEntity<TToken> |
|
CompositeEntity |
ICompositeEntity |
TToken = byte[] |
AuditedCompositeEntity<TCreator, TEditor, TToken> |
IAuditedCompositeEntity<TCreator, TEditor, TToken> |
|
AuditedCompositeEntity<TCreator, TEditor> |
IAuditedCompositeEntity<TCreator, TEditor> |
TToken = byte[] |
AuditedCompositeEntity |
IAuditedCompositeEntity |
TCreator/TEditor = string/string? |
EnumeratorEntity<TKey, TToken> |
IEnumeratorEntity<TKey, TToken> |
|
EnumeratorEntity<TKey> |
IEnumeratorEntity<TKey> |
TToken = byte[] |
EnumeratorEntity |
IEnumeratorEntity |
TKey = int |
Usage
Inherit from the appropriate base class and add your domain properties:
// Simple entity identified by Guid with concurrency token
public class Product : IdentityEntity
{
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
}
// Audited entity — tracks who created/edited, but not when
public class Order : AuditedEntity
{
public decimal TotalAmount { get; set; }
}
// Fully audited entity — tracks who and when
public class Invoice : FullAuditedEntity
{
public string Number { get; set; } = string.Empty;
public DateOnly IssueDate { get; set; }
}
// Composite-key entity
public class OrderItem : CompositeEntity
{
public Guid OrderId { get; set; }
public Guid ProductId { get; set; }
public int Quantity { get; set; }
}
// Lookup table (int PK, Name unique, soft-deletable)
public class ProductCategory : EnumeratorEntity
{
// Name and Description come from IEnumeration via EnumeratorEntity
}
// Custom key type
public class LedgerEntry : IdentityEntity<long>
{
public decimal Amount { get; set; }
}
Note:
FullAuditedEntityadds time auditing (CreatedAt/EditedAt) to the identity and user-audit features. Soft delete (IsDeleted) is a separate concern — it is provided byIEnumeratorEntity(and thusEnumeratorEntity), not byFullAuditedEntity. AddISoftDeletablemanually to your entity if you need soft delete combined with full auditing.
Changed in 5.0:
Timestampis now settable and starts out as an empty array rather thannull. Assign the previously read value onto a reconstructed entity before updating it, or the update is not guarded by the concurrency token — see the abstractions README.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- BB84.EntityFrameworkCore.Entities.Abstractions (>= 5.0.916)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on BB84.EntityFrameworkCore.Entities:
| Package | Downloads |
|---|---|
|
BB84.EntityFrameworkCore.Repositories
This package contains frequently used repository implementations of their respective abstractions, along with provider agnostic entity type configurations and save changes interceptors. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 5.0.1027 | 69 | 10/27/2026 |
| 5.0.1020 | 133 | 10/20/2026 |
| 5.0.916 | 407 | 9/16/2026 |
| 5.0.818 | 299 | 8/18/2026 |
| 4.5.725 | 224 | 7/25/2026 |
| 4.4.724 | 150 | 7/24/2026 |
| 4.4.625 | 246 | 6/25/2026 |
| 4.3.520 | 337 | 5/20/2026 |
| 4.3.513 | 200 | 5/13/2026 |
| 4.3.507 | 168 | 5/7/2026 |
| 4.3.419 | 254 | 4/19/2026 |
| 4.3.327 | 293 | 3/27/2026 |
| 4.2.322 | 185 | 3/22/2026 |
| 4.1.319 | 161 | 3/19/2026 |
| 4.1.222 | 238 | 2/22/2026 |
| 4.1.122 | 219 | 1/22/2026 |
| 4.0.1026 | 424 | 10/26/2025 |
| 4.0.916 | 484 | 9/16/2025 |
| 4.0.817 | 311 | 8/17/2025 |
| 3.1.617 | 423 | 6/17/2025 |