web-dev-qa-db-ja.com

Entity Framework-テーブルの列名を文字列配列として取得

EF 5とデータベースを最初に使用してデータベースの.edmxモデルを生成している場合、エンティティの列のリストを取得するにはどうすればよいですか?

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

私が探しているのは、colNames [0] == "Id"、colNames [1] == "FirstName"などです。

21
user982119

どうですか:

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

もちろん、これは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