DK89.DomainBase
1.0.1
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 DK89.DomainBase --version 1.0.1
NuGet\Install-Package DK89.DomainBase -Version 1.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="DK89.DomainBase" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DK89.DomainBase --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DK89.DomainBase, 1.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 DK89.DomainBase as a Cake Addin #addin nuget:?package=DK89.DomainBase&version=1.0.1 // Install DK89.DomainBase as a Cake Tool #tool nuget:?package=DK89.DomainBase&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Example of Usage for AuditableBase
and AuditableBase<TIdType>
The following examples demonstrate how to use the AuditableBase
and AuditableBase<TIdType>
classes in your project.
AuditableBase
Example
using DK89.DomainBase.Base;
using System;
namespace MyProject.Domain
{
/// <summary>
/// Example entity inheriting from AuditableBase with a default GUID as ID.
/// </summary>
public class Product : AuditableBase
{
public string Name { get; set; } = default!;
public decimal Price { get; set; }
}
}
// Usage
var product = new Product
{
Id = Guid.NewGuid(),
Name = "Example Product",
Price = 19.99M,
CreatedBy = "Admin",
CreatedDate = DateTime.UtcNow
};
Console.WriteLine($"Product: {product.Name}, Created By: {product.CreatedBy}, Created At: {product.CreatedDate}");
AuditableBase<TIdType>
Example
using DK89.DomainBase.Base;
using System;
namespace MyProject.Domain
{
/// <summary>
/// Example entity inheriting from AuditableBase with a custom ID type.
/// </summary>
public class Order : AuditableBase<int>
{
public DateTime OrderDate { get; set; }
public string CustomerName { get; set; } = default!;
}
}
// Usage
var order = new Order
{
Id = 1,
OrderDate = DateTime.UtcNow,
CustomerName = "John Doe",
CreatedBy = "System",
CreatedDate = DateTime.UtcNow
};
Console.WriteLine($"Order ID: {order.Id}, Customer: {order.CustomerName}, Order Date: {order.OrderDate}");
Key Features of AuditableBase
and AuditableBase<TIdType>
Auditable Fields:
CreatedBy
: Indicates the user who created the entity.CreatedDate
: Timestamp of when the entity was created.EditedBy
: Indicates the user who last edited the entity.EditedDate
: Timestamp of the last edit.IsDeleted
: Boolean flag to indicate soft deletion.
Customizable ID Type:
- The default
AuditableBase
class uses a GUID for theId
. - Use
AuditableBase<TIdType>
to define an ID with a custom type, such asint
,string
, or another type.
- The default
When to Use These Classes
- Entities in a Domain Model: Use these classes as base types for entities that require auditing fields and flexible ID management.
- Soft Deletions: Handle soft deletions gracefully using the
IsDeleted
property.
Additional Notes
- The properties in the base classes can be overridden in derived classes as needed.
- Ensure you initialize the
Id
property in your derived classes, particularly when using custom ID types.
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. 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. |
.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
- System.ComponentModel.Annotations (>= 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.