EF Core GUID PK с автоматическим приращением INT для ключа кластеризации - PullRequest
0 голосов
/ 30 ноября 2018

Я понимаю, что использование 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; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...