Więc zrezygnowałem z prób robienia tego tak, jak uważałem, że powinno to być zrobione i całkowicie usunąłem liczbę mnogą. Naprawdę nie wiem na pewno, ale zakładam, że problem ma związek z obsługą EF przez złącze mysql .net. Oto, co zrobiłem.
Po pierwsze, wystąpił błąd w mojej metodzie ApplicationStart:
//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());
Po drugie, przestałem wywoływać podstawową implementację OnModelCreating, która nie jest wymieniona w oryginalnym kodzie, ponieważ zaimplementowałem ją tylko zgodnie z sugestią jgauffina:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//DONT DO THIS ANYMORE
//base.OnModelCreating(modelBuilder);
//modelBuilder.Entity<Vote>().ToTable("Votes")
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Po trzecie, przeczytałem w niektórych postach, że MySQL .net Connector nie pozwala EF na TWORZENIE bazy danych, więc początkowo utworzyłem pustą bazę danych. Wydaje się, że nie ma to już miejsca w przypadku złącza 6.4.4+ i dopóki użytkownik ciągu połączenia ma możliwość tworzenia nowych baz danych, działa lepiej, jeśli początkowo taka nie istnieje.
Kiedyś zrobiłem wszystko powyższe, wydawało się, że działa. Więc teraz mogę przynajmniej iść do przodu. Mamy nadzieję, że w przyszłości uda nam się ustalić przyczynę rozbieżności liczby mnogiej i pojedynczej.
Dziękuję wszystkim za poświęcony czas i wysiłek.