将变量用于LINQ属性

时间:2014-06-10 06:36:05

标签: c# .net linq

我想将属性传递给方法并搜索与给定值匹配的记录。以下代码不会引发错误,但也不会返回任何数据。我不知道问题是这样设置列/属性,还是其他错误......代码如下:

public virtual IList<ReceivingInspection> GetRecordsBySupplier(string property, string value) {
    if (property.Length < 1 || value.Length < 1) return null;
    var result = from ri in _receiveInspectRepository.Table
                 where ri.property == value
                 select ri;
    return result.ToList();
}

1 个答案:

答案 0 :(得分:1)

您应该遍历_receiveInspectRepository.Table中的项目并使用Reflection获取property

的值

这样的事情:

Type t = ri.GetType();
PropertyInfo prop = t.GetProperty(property);
if(prop.GetValue(ri) == value)
{
    dostuff();
}