それで、私はそれをやるべきだと思った方法でやろうとするのをあきらめ、複数形を一斉に削除しました。確かなことはわかりませんが、問題はmysql.netコネクタのEFのサポートに関係していると思います。これが私がしたことです。
まず、ApplicationStartメソッドにバグがありました:
//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());
次に、jgauffinの提案に従って実装しただけなので、元のコードにリストされていないOnModelCreatingベース実装の呼び出しを停止しました。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//DONT DO THIS ANYMORE
//base.OnModelCreating(modelBuilder);
//modelBuilder.Entity<Vote>().ToTable("Votes")
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
第三に、MySQL .netコネクタではEFが実際にデータベースを作成できないことをいくつかの投稿で読んだので、最初は空のDBを作成していました。これは、コネクタ6.4.4以降には当てはまらないようです。接続文字列のユーザーが新しいデータベースを作成できる限り、データベースが最初に存在しない場合は、より適切に機能します。
一度、私は上記のすべてをしました、それはうまくいったようでした。だから今、私は少なくとも前進することができます。将来、複数形/単数形の不一致の原因を突き止めることができれば幸いです。
時間と労力を費やしてくれた皆さんに感謝します。