Så jeg opgav at forsøge at gøre det, som jeg følte, det burde gøres, og fjernede pluralisering tilsammen. Jeg ved det ikke med sikkerhed, men jeg antager, at problemet har at gøre med mysql .net-stikkets understøttelse af EF. Her er, hvad jeg gjorde.
For det første var der en fejl i min ApplicationStart-metode:
//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());
For det andet stoppede jeg med at kalde OnModelCreating-baseimplementeringen, som ikke er opført i den originale kode, da jeg kun implementerede den som ifølge jgauffins forslag:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//DONT DO THIS ANYMORE
//base.OnModelCreating(modelBuilder);
//modelBuilder.Entity<Vote>().ToTable("Votes")
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
For det tredje læste jeg i nogle indlæg, at MySQL .net Connector ikke lader EF faktisk OPRET en database, så jeg havde oprindeligt oprettet den tomme DB. Dette ser ud til ikke længere at være tilfældet med connector 6.4.4+, og så længe din forbindelsesstrengs bruger har mulighed for at oprette nye databaser, fungerer det bedre, hvis en ikke eksisterer i starten.
Engang gjorde jeg alt det ovenstående, så det ud til at virke. Så nu kan jeg i det mindste komme videre. Forhåbentlig kan vi finde ud af årsagen til flertals-/entals-uoverensstemmelsen i fremtiden.
Tak til alle for deres tid og indsats.