Oggi ho dovuto affrontare lo stesso problema, la differenza è che non mi affido a Code First per creare le tabelle per me, le creo manualmente mentre procedo.
Ho seguito la descrizione fornita qui e ho finito con il tuo stesso errore, ho creato manualmente un campo "Discriminatore" sulla mia tabella e ne ho cambiato il tipo in MEDIUMTEXT ma il provider ha insistito sul fatto che stavo fornendo in qualche modo una proprietà MaxLength, anche se MEDIUMTEXT non ha MaxLength come VARCHAR , presumo che si tratti di un bug del provider.
Bene, per ovviare a questo ho usato un'API fluente per dire manualmente il nome della colonna del discriminatore (che ho appena tenuto come "Discriminatore") e i valori che EF dovrebbe aspettarsi dalla colonna del discriminatore, nel tuo caso questo sarebbe:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Vehicle>()
.Map<Car>(m => m.Requires("Discriminator").HasValue("Car"))
.Map<Bike>(m => m.Requires("Discriminator").HasValue("Bike"));
}
Ho cambiato il tipo della mia colonna discriminatore in VARCHAR(50) senza alcun problema apparente, ora funziona bene per me. L'alternativa per me sarebbe migrare a un altro ORM che è semplicemente troppo faticoso, aspetterò le prossime versioni del provider MySql e verificherò se hanno risolto il problema, nel frattempo mi atterrò a questa soluzione.