Mysql
 sql >> Base de données >  >> RDS >> Mysql

Entity Framework avec MySql et les migrations échouent car la longueur maximale de la clé est de 767 octets

Réponse paraphrasée de Ajout d'un contexte MigrationHistory personnalisé ...

EF6 utilise un MigrationHistory table pour suivre les modifications du modèle et assurer la cohérence entre le schéma de la base de données et le schéma conceptuel. Cette table ne fonctionne pas pour MySQL par défaut car la clé primaire est trop grande . Pour remédier à cette situation, vous devrez réduire la taille de la clé pour cette table.

Essentiellement, EF6 vous permet de modifier la taille de la clé pour les colonnes d'index MigrationId/ContextKey à l'aide de l'API Fluent comme suit :

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

Complet Instructions ici...