linq var作为字段/列中的子句

  • 本文关键字:子句 字段 var linq c# linq
  • 更新时间 :
  • 英文 :


在我的实体中,我有一些字段/列,例如" AAA"," BBB"," CCC"等。每个都可以具有" s"或" n"的值。

例如,如果我尝试此操作:

items = items.Where(p => p.aaa == "s");

它将记录将记录限制在具有" s"的AAA(测试,有效)的人。

我现在需要通过以要搜索的字段名称来通过查询。

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(和测试)输出所选字段(AAA或BBB),但是没有返回记录。

有什么方法可以将var传递到Where子句?

您可以使用 REFLECTION 像这样动态确定相关属性;

  items = items.Where( p => p.GetType().GetProperties().FirstOrDefault(property => property.Name == qsintervencao).GetValue(p, null) == "s");

最新更新