如何在LINQ to SQL查询中遍历每列数据?

jdzmm42g  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(133)

假设我的LINQ to SQL查询是这样的:

var query = (from q in db.GetTable<potato>()
            where q.ID == dbID
            select q).FirstOrDefault();

字符串
我如何将 * 横向 * 而不是 * 纵向?*。所以只有一行,我想在每列的基础上遍历每个数据项,而不是逐行。有很多属性,所以我只想遍历,而不是手动编写它们。

jqjz2hbq

jqjz2hbq1#

如果你想要的数据是 * 属性 *:

var values = typeof(potato)
    .GetProperties()
    .Select(p=>p.GetValue(query,null))
    .ToArray();

字符串
如果数据为字段:

var values = typeof(potato)
    .GetFields()
    .Select(p=>p.GetValue(query))
    .ToArray();


如果必须返回某些属性,您可以像下面这样过滤PropertyInfoes或FieldInfoes:

typeof(potato)
    .GetFields()
    .Where(p=>...labla...)
    .Select...

t1rydlwq

t1rydlwq2#

你可以通过反射得到这个

foreach (PropertyInfo propertyInfo in potato.GetType().GetProperties())
{
    if (propertyInfo.CanRead)
    {
          string val= propertyInfo.GetValue(potato, null).ToString();
    }
}

字符串

相关问题