如何从特定列名称中获取值

时间:2016-06-17 16:24:45

标签: c# entity-framework

string[] data = { "Col1", "Col2", "Col3" };

tblMain main = _serviceRepository.GetMainData(record.ExtractID);

foreach (string colName in data)
{

}

我有一个由表的列名组成的字符串。我正在使用实体框架从数据库中获取数据。数据将只有一行,我将其保存为tblMain类型。现在我想将数组与表中的列名进行比较。

如果表中存在该列名,那么我需要从表中获取数据。有没有办法做到这一点?

tblMain是一种模型

public partial class tblMain
{
    public int ID { get; set; }
    public string Col1 { get; set; }
    public string Col2 { get; set; }
    public string Col3 { get; set; }
}

1 个答案:

答案 0 :(得分:0)

您可以使用反射来使用PropertyInfo类来执行此操作。 如果要从列中获取数据,必须传入参数查询结果,该查询是一个对象' tblMain'从实体框架到方法GetValue

这是一个如何获取Col1数据的示例:

tblMain queryResult = ctx.tblMain.first(); // get your fist row in the DbSet

PropertyInfo prop = tblMain.GetType().GetProperties(data[0]);
string col1Value = prop.GetValue(queryResult);

当然,您可以使用PropertyExist()

方法添加验证