web-dev-qa-db-fra.com

Entity Framework - obtenir les noms de colonne d'une table sous forme de tableau de chaînes

Si j'utilise EF 5 et Database d'abord pour générer un modèle .edmx de ma base de données, comment obtenir une liste des colonnes d'une entité?

using (var db = new ProjectNameContext())
{
    // string[] colNames = db.Users.
}

Ce que je recherche, c'est colNames [0] == "Id", colNames [1] == "FirstName", etc.

21
user982119

Que diriez-vous:

var names = typeof(User).GetProperties()
                        .Select(property => property.Name)
                        .ToArray();

Bien sûr, cela peut être utilisé pour tout type, pas seulement pour une table EF.

42
dav_i
var res = typeof(TableName).GetProperties()
                        .Select(property => property.Name)
                        .ToArray();

OR

var res = dbContext.Model.FindEntityType(typeof(TableName))
                           .GetProperties().Select(x => x.Relational().ColumnName)
                           .ToList();
3
Mark Macneil Bikeio