LabelLocker.EFCore
2.0.1
dotnet add package LabelLocker.EFCore --version 2.0.1
NuGet\Install-Package LabelLocker.EFCore -Version 2.0.1
<PackageReference Include="LabelLocker.EFCore" Version="2.0.1" />
<PackageVersion Include="LabelLocker.EFCore" Version="2.0.1" />
<PackageReference Include="LabelLocker.EFCore" />
paket add LabelLocker.EFCore --version 2.0.1
#r "nuget: LabelLocker.EFCore, 2.0.1"
#:package LabelLocker.EFCore@2.0.1
#addin nuget:?package=LabelLocker.EFCore&version=2.0.1
#tool nuget:?package=LabelLocker.EFCore&version=2.0.1
LabelLocker
LabelLocker is a .NET library designed to manage and ensure the uniqueness of labels or identifiers across different entities in your applications. With built-in support for Entity Framework Core (EFCore) and an abstraction layer for custom repository implementations, LabelLocker is highly adaptable to various data storage strategies. It also implements optimistic concurrency control to manage concurrent operations on labels efficiently.
Key Features
- Unique Label Management: Safely reserve and release labels to ensure uniqueness across entities.
- EFCore Integration: Leverage Entity Framework Core for seamless integration with relational databases.
- Custom Repository Support: Extend LabelLocker with custom repositories to fit any data access strategy.
- Concurrency Handling: Manage concurrent operations with built-in optimistic concurrency control.
- Case Insensitivity: Label names are treated case-insensitively, ensuring "LABEL" and "label" are considered the same.
Getting Started
Installation
dotnet add package LabelLocker
Configuration
- EFCore Setup: Ensure EFCore is configured in your project to use LabelLocker with your database of choice.
- Integrate LabelLocker: Add the
LabelEntityto yourDbContext:
public DbSet<LabelEntity> Labels { get; set; }
- Database Migration: Apply migrations to create the necessary table for label management:
dotnet ef migrations add AddLabelEntities
dotnet ef database update
Usage
Reserve a label:
var reservationResult = await labelService.ReserveLabelAsync("MyUniqueLabel");
if (reservationResult.Success)
{
var token = reservationResult.ReservationToken;
// Handle success
}
Release a label:
var releaseResult = await labelService.ReleaseLabelAsync("MyUniqueLabel", token);
if (releaseResult.Success)
{
// Label released successfully
}
Custom Repository Implementation
Create a custom repository by implementing the ILabelRepository interface if you prefer using a different ORM or data access strategy than EFCore.
public class CustomLabelRepository : ILabelRepository
{
// Custom implementation
}
Contributing
Contributions are welcome! Feel free to fork the repository, submit pull requests, or report issues.
License
LabelLocker is distributed under the MIT License. See the LICENSE file for more details.
| 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. 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. |
-
net7.0
- LabelLocker.Abstractions (>= 2.0.1)
- Microsoft.EntityFrameworkCore (>= 7.0.16)
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 |
|---|