Entity Framework: Как вы применяете изменения модели конкретного провайдера в Entity Framework Core 2.x? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть следующий код в моем DbContext

protected override void OnModelCreating(ModelBuilder builder)
{
    // ...

    // Shorten key length for Identity
    builder.Entity<ApplicationUser>(entity => entity.Property(m => m.Id).HasMaxLength(127));
    builder.Entity<IdentityRole>(entity => entity.Property(m => m.Id).HasMaxLength(127));
    builder.Entity<IdentityUserLogin<string>>(entity =>
    {
        entity.Property(m => m.LoginProvider).HasMaxLength(127);
        entity.Property(m => m.ProviderKey).HasMaxLength(127);
    });
    builder.Entity<IdentityUserRole<string>>(entity =>
    {
        entity.Property(m => m.UserId).HasMaxLength(127);
        entity.Property(m => m.RoleId).HasMaxLength(127);
    });
    builder.Entity<IdentityUserToken<string>>(entity =>
    {
        entity.Property(m => m.UserId).HasMaxLength(127);
        entity.Property(m => m.LoginProvider).HasMaxLength(127);
        entity.Property(m => m.Name).HasMaxLength(127);
    });

Я хочу применить эти изменения только к моделям, если используется сервер / поставщик MySQL. Каков наилучший способ сделать это?

Этот ответ предполагает следующее, что кажется счастливым

DbContext.Database.Connection.GetType().Name

В этом ответе предлагается использовать такие проверки, как Database.IsSqlServer(), что хорошо, но я не могу найти метод Database.IsMySqlServer() в любом месте

Пожалуйста, помогите. Спасибо.

...