有没有办法从ExecuteQuery
的动态结果中获取列名,在linq-to-sql中,以下是我尝试过的代码片段,但它给出了
{System.Reflection.PropertyInfo [0]}作为返回。因为我的SQL查询是 从数据库中提取我不能用预定义的表格映射它
string sql = 'SELECT CustomX, CustomY FROM CustomTable';
var tabledata = (IEnumerable<dynamic>)dbLinq.ExecuteQuery<dynamic>(sql);
BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Static | BindingFlags.Instance |
BindingFlags.DeclaredOnly;
PropertyInfo[] columns = tabledata.First().GetType().GetProperties(flags);
任何帮助或替代建议将不胜感激... (我正在使用.net framework 4.0,SQL Server 2008)
修改: 如果此选项不适用于动态结果,任何人都可以指导我循环通过第一条记录并获取列名...提前致谢
答案 0 :(得分:0)
您应该在Name
对象上使用PropertyInfo
属性来获取此属性。
for(int i = 0 ; i < columns.Length; i++)
{
Console.WriteLine(columns[i].Name); // <-- will output in a name of a certain property
}
答案 1 :(得分:0)
使用:
for(int i = 0 ; i < columns.Count; i++)
{
Console.WriteLine(columns[i].Name);
}