实体框架:如何在Entity Framework Core 2.x中应用提供者特定的模型更改?

时间:2019-03-27 07:02:59

标签: mysql entity-framework entity-framework-6 entity-framework-core entity

我在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,我只想将这些更改应用于模型。最好的方法是什么?

This的答案表明以下内容很骇人

DbContext.Database.Connection.GetType().Name

This的答案建议使用诸如Database.IsSqlServer()之类的检查,这很好,但我在任何地方都找不到Database.IsMySqlServer()方法

请帮助。谢谢。

0 个答案:

没有答案