Possible to set column ordering in Entity Framework
I'm assuming you are using Entity Framework 6 since column ordering is not yet supported in EF Core.
You can use either data attributes or the fluent API to set column order.
To use a Data Attribute to set column order, reference System.ComponentModel.DataAnnotations
and use the ColumnAttribute
. You can also set the column name with this attribute if you want it to differ from the property name.
[Column("CreatedAt", Order=0)]
public DateTime CreatedAt { get; set; }
[Column("CreatedBy", Order=1)]
public int CreatedBy { get; set; }
Note the Order parameter is zero-based.
See also: http://www.entityframeworktutorial.net/code-first/column-dataannotations-attribute-in-code-first.aspx
Alternatively, you can use the Fluent API in the OnModelCreating
method in your DbContext class:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//Configure Column
modelBuilder.Entity<EntityClass>()
.Property(p => p.CreatedAt)
.HasColumnOrder(0);
}
See also: http://www.entityframeworktutorial.net/code-first/configure-property-mappings-using-fluent-api.aspx
This way is a bit more verbose but you can have a more bit control over what's happening.