Mysql
 sql >> Database >  >> RDS >> Mysql

Entity Framework con MySql e Migrazioni non riuscite perché la lunghezza massima della chiave è 767 byte

Risposta parafrasata da Aggiunta di contesto MigrationHistory personalizzato ...

EF6 utilizza una Cronologia migrazione tabella per tenere traccia delle modifiche del modello e per garantire la coerenza tra lo schema del database e lo schema concettuale. Questa tabella non funziona per MySQL per impostazione predefinita perché la chiave primaria è troppo grande . Per rimediare a questa situazione, dovrai ridurre la dimensione della chiave per quella tabella.

In sostanza, EF6 ti consente di modificare la dimensione della chiave per le colonne dell'indice MigrationId/ContextKey utilizzando l'API Fluent in questo modo:

modelBuilder.Entity<HistoryRow>().Property(h => h.MigrationId).HasMaxLength(100).IsRequired();
modelBuilder.Entity<HistoryRow>().Property(h => h.ContextKey).HasMaxLength(200).IsRequired();

Completato Istruzioni qui...