23

如果我首先使用 EF 5 和数据库来生成我的数据库的 .edmx 模型,我如何获取实体列的列表?

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

我正在寻找的是 colNames[0] == "Id"、colNames[1] == "FirstName" 等。

4

2 回答 2

47

怎么样:

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

当然,这可以用于任何类型,而不仅仅是 EF 表。

于 2013-10-31T10:53:36.383 回答
9
var res = typeof(TableName).GetProperties()
                        .Select(property => property.Name)
                        .ToArray();

或者

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

var index = 0;    
var propertyInfo = res[index].PropertyInfo;

var columnName = res[index].Relational().ColumnName;
var propertyName = propertyInfo.Name;
var propertyValue = propertyInfo.GetValue(sourceObject); // NEED OBJECT TO GET VALUE
于 2019-07-11T07:19:38.567 回答