¿Existe alguna configuración posible para establecer el orden de las columnas de la base de datos en el primer enfoque del código del marco de la entidad?
Todo mi conjunto de entidades debe tener algunos campos comunes para mantener recordinfo
public DateTime CreatedAt { get; set; } public int CreatedBy { get; set; } public DateTime ModifiedAt { get; set; } public int ModifiedBy { get; set; } public bool IsDeleted { get; set; }Quiero mantener estos campos al final de la tabla. ¿Hay alguna configuración de EF posible que pueda usar para configurar esto en lugar de mantener estos campos al final de mi clase de modelo?
Supongo que está usando Entity Framework 6, ya que el orden de las columnas aún no es compatible con EF Core.
Puede usar atributos de datos o la API fluida para establecer el orden de las columnas.
Para usar un atributo de datos para establecer el orden de las columnas, haga referencia a System.ComponentModel.DataAnnotations y use ColumnAttribute . También puede establecer el nombre de la columna con este atributo si desea que difiera del nombre de la propiedad.
[Column("CreatedAt", Order=0)] public DateTime CreatedAt { get; set; } [Column("CreatedBy", Order=1)] public int CreatedBy { get; set; }Tenga en cuenta que el parámetro Orden está basado en cero.
Consulte también: http://www.entityframeworktutorial.net/code-first/column-dataannotations-attribute-in-code-first.aspx
Alternativamente, puede usar la API Fluent en el método OnModelCreating en su clase DbContext:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { //Configure Column modelBuilder.Entity<EntityClass>() .Property(p => p.CreatedAt) .HasColumnOrder(0); }Consulte también: http://www.entityframeworktutorial.net/code-first/configure-property-mappings-using-fluent-api.aspx
De esta manera es un poco más detallado, pero puede tener un poco más de control sobre lo que está sucediendo.
Solo usa:
using System.ComponentModel.DataAnnotations.Schema;Código:
[DisplayColumn("Name" , Order = 1)] public int UserName { get; set; }Aviso: el orden de las columnas de forma predeterminada toma un número grande, por lo que si ordenó solo esta columna, será la primera en la tabla a menos que haya pedido otra columna con un número de orden más bajo, que en este caso es: 0