sql >> Database >  >> RDS >> Mysql

Entity Framework maakt een meervoudige tabelnaam, maar de weergave verwacht een enkelvoudige tabelnaam?

Dus ik gaf het op om te proberen het te doen zoals ik vond dat het moest worden gedaan en verwijderde de pluralisering allemaal samen. Ik weet het niet echt zeker, maar ik neem aan dat het probleem te maken heeft met de ondersteuning van EF door de mysql .net-connector. Dit is wat ik deed.

Ten eerste was er een fout in mijn ApplicationStart-methode:

//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());

Ten tweede stopte ik met het aanroepen van de OnModelCreating-basisimplementatie die niet in de originele code staat, omdat ik deze alleen heb geïmplementeerd volgens de suggestie van jgauffin:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    //DONT DO THIS ANYMORE
    //base.OnModelCreating(modelBuilder);
    //modelBuilder.Entity<Vote>().ToTable("Votes")
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

Ten derde las ik in sommige berichten dat de MySQL .net Connector EF niet toestaat een database te CREREN, dus ik had aanvankelijk de lege DB gemaakt. Dit lijkt niet langer het geval te zijn met connector 6.4.4+, en zolang de gebruiker van uw verbindingsreeks de mogelijkheid heeft om nieuwe databases te maken, werkt het beter als er in eerste instantie geen bestaat.

Toen ik al het bovenstaande deed, leek het te werken. Dus nu kan ik in ieder geval vooruit. Hopelijk kunnen we in de toekomst de oorzaak van de meervouds-/enkelvoudsafwijking achterhalen.

Iedereen bedankt voor hun tijd en moeite.



  1. Optionele INSERT-instructie in transactieketen met NodeJS en Postgres

  2. Hoe gegevens uit een tekstbestand naar de mysql-database te importeren

  3. IGNORE_DUP_KEY langzamer op geclusterde indexen

  4. Identiteitstoename in SQL Server 2012-kolom springt van 6 naar 1000+ bij 7e invoer