Dlaczego EF 5.x używa nazwy mnogiej dla tabeli?

Miałem pewne doświadczenia w strukturze ORM, takie jak Hibernate, nawet Entity Framework 3.0.

Domyślnie te struktury używają pojedynczej nazwy dla tabeli. Na przykład użytkownik klasy będzie mapował do tabeli Użytkownik.

Ale kiedy przeprowadzam się do EF 5.x za pomocą Visual Studio 2012, używa on liczby mnogiej i powoduje wiele błędów, chyba że ręcznie mapuję tę klasę przy użyciuTableAttribute tak jak:

[Table("User")]
public class User {
    // ...
}

BezTableAttribute, jeśli mamDbContext jak poniżej:

public CustomContext : DbContext {
    // ...
    public DbSet<User> Users { get; set; }
}

Następnie dzwonię:

var list = db.Users.ToList();

Wygenerowany sql wygląda tak:

Select [Extent1].[Username] From [Users] as [Extent1]

Dlatego błąd wystąpi, ponieważ nie mam żadnej nazwanej tabeliUżytkownicy. Ponadto odnoszę się do tabel nazw w postaci liczby pojedynczej do liczby mnogiej. Możesz zobaczyć dlaczegoten link

Zastanawiam się, dlaczego Microsoft implementuje EF 5.x w ten sam sposób niż EF 3.0?

Zaktualizowano:

Możemy powiedzieć EF, aby nie używał zindywidualizowanej nazwy, używając tego kodu w klasie kontekstu:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

    base.OnModelCreating(modelBuilder);
}

Nawet jeśli narzędzie EF generuje pluralizowaną nazwę, powinno zachować odwzorowania w oryginalnej bazie danych, prawda? Ponieważ niektórzy użytkownicy mogą chcieć zmienić kilka nazw pól w swojej klasie. EF 3.0 działa dobrze, ale EF 5.x nie.

Chłopaki, proszę podać mój powód, proszę!

questionAnswers(2)

yourAnswerToTheQuestion