EntityAxis.KeyMappers
0.2.0
See the version list below for details.
dotnet add package EntityAxis.KeyMappers --version 0.2.0
NuGet\Install-Package EntityAxis.KeyMappers -Version 0.2.0
<PackageReference Include="EntityAxis.KeyMappers" Version="0.2.0" />
<PackageVersion Include="EntityAxis.KeyMappers" Version="0.2.0" />
<PackageReference Include="EntityAxis.KeyMappers" />
paket add EntityAxis.KeyMappers --version 0.2.0
#r "nuget: EntityAxis.KeyMappers, 0.2.0"
#:package EntityAxis.KeyMappers@0.2.0
#addin nuget:?package=EntityAxis.KeyMappers&version=0.2.0
#tool nuget:?package=EntityAxis.KeyMappers&version=0.2.0
EntityAxis.KeyMappers
EntityAxis.KeyMappers provides key mapping implementations for EntityAxis, allowing seamless conversion between application and database key types.
✨ Features
- Generic key mappers for common scenarios:
IdentityKeyMapper<T>
for when key types are the sameStringToGuidKeyMapper
for string-to-Guid conversionStringToIntKeyMapper
for string-to-integer conversion
- Easy to extend with custom key mappers
- Stateless implementations for optimal performance
📦 Installation
dotnet add package EntityAxis.KeyMappers
🧱 Available Key Mappers
IdentityKeyMapper<T>
A default implementation for when the application and database key types are the same. This mapper performs no conversion and simply returns the input key.
// Register in DI container
services.AddSingleton<IKeyMapper<int, int>, IdentityKeyMapper<int>>();
StringToGuidKeyMapper
Converts between string keys in the application layer and GUID keys in the database.
// Register in DI container
services.AddSingleton<IKeyMapper<string, Guid>, StringToGuidKeyMapper>();
StringToIntKeyMapper
Converts between string keys in the application layer and integer keys in the database.
// Register in DI container
services.AddSingleton<IKeyMapper<string, int>, StringToIntKeyMapper>();
🧪 Creating Custom Key Mappers
You can create custom key mappers by implementing the IKeyMapper<TAppKey, TDbKey>
interface:
public class CustomKeyMapper : IKeyMapper<string, long>
{
public long ToDbKey(string appKey) => long.Parse(appKey);
public string ToAppKey(long dbKey) => dbKey.ToString();
}
🧠 Best Practices
- Register key mappers as singletons since they are stateless
- Ensure your key mappers handle edge cases (null values, invalid formats, etc.)
- Consider adding validation in your key mappers to catch conversion issues early
- Use the
IdentityKeyMapper
when your application and database key types are the same
🔗 Related Packages
- EntityAxis.Abstractions: Defines the
IKeyMapper
interface and core contracts - EntityAxis.EntityFramework: Uses key mappers for database operations
- EntityAxis.MediatR: Works with key mappers for command/query handling
- EntityAxis.Registration: Provides extension methods for easy key mapper registration
📜 License
This project is licensed under the MIT License.
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. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on EntityAxis.KeyMappers:
Package | Downloads |
---|---|
EntityAxis.EntityFramework
Provides a generic and extensible implementation of ICommandService and IQueryService using Entity Framework Core. Enables clean, testable data access logic with support for domain–to–database entity separation and AutoMapper integration. |
GitHub repositories
This package is not used by any popular GitHub repositories.