sql >> Databáze >  >> RDS >> Mysql

Entity Framework vytvoří název tabulky v množném čísle, ale pohled očekává singulární název tabulky?

Takže jsem se vzdal pokusu udělat to tak, jak jsem cítil, že by se to mělo dělat, a odstranil jsem pluralizaci dohromady. Opravdu to nevím jistě, ale předpokládám, že problém souvisí s podporou EF konektoru mysql .net. Tady je to, co jsem udělal.

Nejprve se vyskytla chyba v mé metodě ApplicationStart:

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

Za druhé, přestal jsem volat základní implementaci OnModelCreating, která není uvedena v původním kódu, protože jsem ji implementoval pouze podle jgauffinova návrhu:

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

Za třetí, v některých příspěvcích jsem četl, že MySQL .net Connector neumožňuje EF ve skutečnosti VYTVOŘIT databázi, takže jsem původně vytvořil prázdnou DB. Zdá se, že toto již není případ konektoru 6.4.4+, a pokud má uživatel vašeho připojovacího řetězce možnost vytvářet nové databáze, funguje to lépe, pokud zpočátku žádná neexistuje.

Jakmile jsem udělal vše výše uvedené, zdálo se, že to funguje. Tak teď se můžu alespoň posunout dál. Doufejme, že v budoucnu dokážeme zjistit příčinu nesrovnalostí v množném / jednotném čísle.

Děkujeme všem za jejich čas a úsilí.



  1. Formátovat výsledky dotazu SQLite jako seznam oddělený čárkami

  2. Identifikace struktury kusovníku (BOM) v databázích

  3. _gc_fusion_compression

  4. Jak zrychlit váš SQL Server pomocí sledování výkonu databáze