ID Generation¶
The framework currently provides two types of ID generators: Guid and Int64. You can configure the ID generator in IEntityTypeConfiguration<>. An example is shown below:
Using the IGuidStronglyTypedId Generator¶
Supports two types of ID generators: Guid and GuidVersion7. It is recommended to use GuidVersion7.
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using NetCorePal.Extensions.Repository.EntityFrameworkCore;
namespace YourNamespace;
public class OrderEntityTypeConfiguration : IEntityTypeConfiguration<Order>
{
public void Configure(EntityTypeBuilder<Order> builder)
{
// Use Guid as ID
builder.Property(x => x.Id).UseGuidValueGenerator();
// Use Guid Version7 as ID
builder.Property(x => x.Id).UseGuidVersion7ValueGenerator();
}
}
Using Snowflake ID as the IInt64StronglyTypedId Generator (Not Recommended)¶
Add the package NetCorePal.Extensions.Repository.EntityFrameworkCore.Snowflake:
dotnet add package NetCorePal.Extensions.Repository.EntityFrameworkCore.Snowflake;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using NetCorePal.Extensions.Repository.EntityFrameworkCore;
namespace YourNamespace;
public class OrderEntityTypeConfiguration : IEntityTypeConfiguration<Order>
{
public void Configure(EntityTypeBuilder<Order> builder)
{
// Use Int64 as ID
builder.Property(x => x.Id).UseSnowFlakeValueGenerator();
}
}