Warum EF-5.x verwenden Sie plural name für die Tabelle?

Hatte, habe ich einige Erfahrungen in der ORM-framework wie Hibernate, sogar Entity Framework 3.0.

Standardmäßig diese frameworks verwenden Sie singular-name für die Tabelle. Zum Beispiel, Klasse Benutzer anzeigen um die Tabelle User.

Aber wenn ich migrieren zu EF-5.x durch die Verwendung von Visual Studio 2012 verwendet plural name und verursacht viele Fehler, wenn ich manuell zuordnen, die Klasse TableAttribute als:

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

Ohne TableAttribute, wenn ich eine DbContext wie folgt:

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

Dann aufrufen:

var list = db.Users.ToList();

Den generierten sql-Code sieht so aus:

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

Daher der Fehler auftreten, da habe ich keine Tabelle mit dem Namen Benutzer. Futhermore, ich Verweise auf Tabellen im singular zu plural. Sie können sehen, warum in dieser link

Frage ich mich, warum Microsoft implementieren EF-5.x der Weg, anstatt das gleiche zu EF 3.0?

Aktualisiert:

Können wir sagen, das EF nicht verwenden pluralisiert Namen mit diesem code in der Kontext-Klasse:

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

    base.OnModelCreating(modelBuilder);
}

Selbst wenn EF tool generiert pluralisiert Namen, es zu halten, sollten die Zuordnungen zu den ursprünglichen Datenbank, sollte es nicht? Da einige Benutzer möchten vielleicht ein paar Namen der Felder in Ihrer Klasse. EF 3.0 funktioniert gut, aber die EF-5.x nicht.

Jungs, Sie geben meine einen Grund, bitte!

InformationsquelleAutor Tu Tran | 2012-12-20
Schreibe einen Kommentar