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

Entity Framework med MySql og migrationer mislykkes, fordi den maksimale nøglelængde er 767 bytes

Svar omskrevet fra Tilføjelse af tilpasset MigrationHistory-kontekst ...

EF6 bruger en MigrationHistory tabel for at holde styr på modelændringer og for at sikre overensstemmelse mellem databaseskema og konceptuelt skema. Denne tabel virker ikke for MySQL som standard, fordi den primære nøgle er for stor . For at afhjælpe denne situation skal du formindske nøglestørrelsen for den tabel.

I det væsentlige giver EF6 dig mulighed for at ændre nøglestørrelsen for MigrationId/ContextKey-indekskolonnerne ved hjælp af Fluent API som sådan:

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

Fuldfør Instruktioner her...



  1. Hvordan får jeg oplysninger om dato/klokkeslæt fra en TIMESTAMP-kolonne?

  2. MySQL rækkefølge efter bedste match

  3. Hvordan tæller man brugerspørgsmål?

  4. Hvordan kontrollerer man, om to datointervaller overlapper i mysql?