Я генерирую динамический c запрос на основе выбранных пользователями фильтров. Затем я запускаю этот запрос для вложенного объекта, и мне нужно оценить результат, однако, когда я пытаюсь глубже запросить в свойствах вложенных объектов, он всегда возвращает false.
Это мой вложенный объект HoldingClass, в котором есть строки, которые в свою очередь, есть атрибуты, которые мне нужно оценить.
class HoldingClass
{
public IEnumerable<Rows> Rows { get; set; }
}
class Rows
{
public IEnumerable<Attribute> Attributes { get; set; }
public string StringProp { get; set; }
}
class Attribute
{
public string Key { get; set; }
public object Value { get; set; }
}
Я использую класс расширения для генерации Queryable из моего HoldingClass:
public static IQueryable<HoldingClass> Where(this HoldingClass holdingClass, string predicate, params object[] values)
=> new List<HoldingClass> {holdingClass}.AsQueryable().Where(predicate, values);
Затем я запускаю запрос, вставляя строку как "IfCriteria", пример запроса:
var ifCriteria = "Rows.Any() AND Rows.Where(Attributes.Any(Key == "\Filter1\" AND Value == "\ValueToSwitchOn\") AND StringProp == "\PropValue\").Any()"
if (holdingClass.Where(ifCriteria).Any()) {
}
Есть идеи, что я ошибаюсь? Если я просто включаю «StringProp», то он работает, но если я go глубже, он останавливается.