Existe-t-il une configuration possible pour définir l'ordre des colonnes de la base de données dans la première approche du code de structure d'entité?
Tous mes ensembles d'entités devraient avoir des champs communs pour garder 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; }
Je veux garder ces champs à la fin de la table. Existe-t-il une configuration EF possible que je puisse utiliser pour configurer ceci plutôt que de conserver ces champs à la fin de ma classe de modèle.
Je suppose que vous utilisez Entity Framework 6, car l'ordre des colonnes n'est pas encore pris en charge dans EF Core.
Vous pouvez utiliser des attributs de données ou l’API fluide pour définir l’ordre des colonnes.
Pour utiliser un attribut de données pour définir l'ordre des colonnes, référencez System.ComponentModel.DataAnnotations
et utilisez la variable ColumnAttribute
. Vous pouvez également définir le nom de la colonne avec cet attribut si vous souhaitez qu'il diffère du nom de la propriété.
[Column("CreatedAt", Order=0)]
public DateTime CreatedAt { get; set; }
[Column("CreatedBy", Order=1)]
public int CreatedBy { get; set; }
Notez que le paramètre Order est basé sur zéro.
Voir aussi: http://www.entityframeworktutorial.net/code-first/column-dataannotations-attribute-in-code-first.aspx
Vous pouvez également utiliser l'API Fluent dans la méthode OnModelCreating
de votre classe DbContext:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//Configure Column
modelBuilder.Entity<EntityClass>()
.Property(p => p.CreatedAt)
.HasColumnOrder(0);
}
Voir aussi: http://www.entityframeworktutorial.net/code-first/configure-property-mappings-using-fluent-api.aspx
Cette méthode est un peu plus détaillée, mais vous pouvez mieux contrôler ce qui se passe.
juste utiliser:
using System.ComponentModel.DataAnnotations.Schema;
Code:
[DisplayColumn("Name" , Order = 1)]
public int UserName { get; set; }
Remarque: cloumn arder prend par défaut un grand nombre. Par conséquent, si vous avez commandé uniquement cette colonne, ce sera la première du tableau sauf si vous avez commandé une autre colonne avec un numéro d'ordre inférieur, dans ce cas: 0 Hope Helps!