Warum verwendet EF 5.x den Pluralnamen für die Tabelle?

Ich habe einige Erfahrungen mit ORM-Frameworks wie Hibernate und Entity Framework 3.0 gemacht.

Standardmäßig verwenden diese Frameworks einen einzelnen Namen für die Tabelle. Beispielsweise wird die Klasse Benutzer der Tabelle Benutzer zugeordnet.

Bei der Migration auf EF 5.x mit Visual Studio 2012 werden jedoch mehrere Namen verwendet, und es treten viele Fehler auf, es sei denn, ich ordne diese Klasse manuell mithilfe von zuTableAttribute wie:

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

OhneTableAttributewenn ich a habeDbContext wie nachstehend:

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

Dann anrufen:

var list = db.Users.ToList();

Die generierte SQL sieht folgendermaßen aus:

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

Aus diesem Grund tritt der Fehler auf, weil ich keine benannte Tabelle habeBenutzer. Außerdem beziehe ich mich auf Namenstabellen in Singularform bis Pluralform. Sie können sehen, warum indieser Link

Ich frage mich, warum Microsoft EF 5.x so implementiert und nicht wie EF 3.0?

Aktualisierte:

Wir können sagen, dass EF keinen pluralisierten Namen verwendet, indem wir diesen Code in der Kontextklasse verwenden:

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

    base.OnModelCreating(modelBuilder);
}

Selbst wenn das EF-Tool einen pluralisierten Namen generiert, sollte es die Zuordnungen zur ursprünglichen Datenbank beibehalten, nicht wahr? Einige Benutzer möchten möglicherweise einige Namen von Feldern in ihrer Klasse ändern. EF 3.0 funktioniert gut, aber EF 5.x nicht.

Leute, könnt ihr mir bitte einen Grund geben!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage