Я понимаю, что использование GUID в качестве ПК не очень оптимально из-за кластеризации (дефрагментации).В этом отношении, автоинкрементное INT является предпочтительным.
Как поступить с GUID PK с автоматически возрастающим INT для кластера с EF, сначала с кодом?
В настоящее время я делаю свои сопоставления так же для фиктивной модели значений./ сущность
public static class ValuesConfiguration
{
public static void Configure(EntityTypeBuilder<Values> entityBuilder)
{
entityBuilder.ToTable("Values");
entityBuilder.HasKey(x => x.Id);
entityBuilder.HasIndex(x => x.Email).IsUnique();
entityBuilder.Property(x => x.Name).IsRequired().HasMaxLength(50);
entityBuilder.Property(x => x.Email).IsRequired().HasMaxLength(254);
}
}
public class MyContext : DbContext
{
public MyContext (DbContextOptions options)
: base(options)
{
this.ChangeTracker.AutoDetectChangesEnabled = true;
}
public DbSet<Values> Values{ get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Configure our mappings
ValuesConfiguration.Configure(modelBuilder.Entity<Values>());
}
}
public class Values
{
public Guid Id { get; set; }
[Required, StringLength(50, MinimumLength = 3)]
public string Name { get; set; }
[Required, StringLength(254)]
public string Email { get; set; }
}