我完全迷失了这个。我有一段代码在这样实现时可以满足我的需要:
return filters.Add(m => m.Metadata.RecordId).IsEqualTo(1);
其中 m 是TestObj
类对象,Add
方法的参数是Expression<Func<TestObj,bool?>>
。
现在的问题是我不能在 Add 中硬编码 m.Metadata.RecordId,因为我在这里得到的是一个字符串,它告诉我应该使用的属性,在本例中是“Metadata.RecordId”。我需要做的是用这个字符串构造这样一个表达式,它的作用与 m => m.Metadata.RecordId 一样。我需要这样的东西:
string propertyName = "Metadata.RecordId";
Expression expr = null;//create expression here somehow that will do the same as m => m.Metadata.RecordId
return filters.Add(expr).IsEqualTo(1);
我怎么做?