¿Por qué EF 5.x usa el nombre plural para la tabla?

He tenido algunas experiencias en el marco de ORM como Hibernate, incluso Entity Framework 3.0.

Por defecto, esos marcos usan un nombre singular para la tabla. Por ejemplo, la clase Usuario se asignará a la tabla Usuario.

Pero cuando migro a EF 5.x usando Visual Studio 2012, usa un nombre plural y causa muchos errores a menos que mapee manualmente esa clase usandoTableAttribute como:

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

SinTableAttribute, si tengo unDbContext como a continuación:

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

Entonces llamando:

var list = db.Users.ToList();

El sql generado se ve como:

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

Por lo tanto, el error ocurrirá porque no tengo ninguna tabla llamadaUsuarios. Además, me refiero a las tablas de nombres en forma singular a forma plural. Puedes ver por qué eneste enlace

Me pregunto por qué Microsoft implementa EF 5.x de esa manera en lugar de lo mismo que EF 3.0?

Actualizado:

Podemos decirle a EF que no use un nombre pluralizado usando este código en la clase de contexto:

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

    base.OnModelCreating(modelBuilder);
}

Incluso si la herramienta EF genera un nombre plural, debería mantener las asignaciones a la base de datos original, ¿no es así? Debido a que algunos usuarios pueden querer cambiar algunos nombres de campos en su clase. EF 3.0 funciona bien, pero EF 5.x no lo hace.

Chicos, me pueden dar una razón, por favor!

Respuestas a la pregunta(2)

Su respuesta a la pregunta