在我的实体中,我有一些字段/列名为" aaa"," bbb"," ccc"等等。每个字段/列都可以包含值& #34; S"或" n"。
例如,如果我试试这个:
items = items.Where(p => p.aaa == "s");
它会将记录限制为aaa拥有" s" (测试,它的工作原理)。
我现在需要传递一个查询字符串,其中包含要搜索的字段的名称。
var qsintervencao = Request.QueryString["intervencao"];
if (qsintervencao == "" || qsintervencao == null || qsintervencao == "all") {
<a>TEST: </a> qsintervencao not set or set to all
} else {
items = items.Where(p => p.@qsintervencao == "s");
<a>TEST: </a> @qsintervencao
}
QS有效,qsintervencao(和TEST)输出所选字段(aaa或bbb),但不返回任何记录。
有没有办法将var传递给where子句?
答案 0 :(得分:0)
您可以使用 Reflection 动态确定相关属性;
items = items.Where( p => p.GetType().GetProperties().FirstOrDefault(property => property.Name == qsintervencao).GetValue(p, null) == "s");