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; }
}
答案 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()
方法添加验证