Где пункт о дочерних свойствах навигации

Я попытался сделать запрос к таблице с "предложением where", основанной на многоуровневых дочерних свойствах навигации.

Я имею:

  • Таблица А со свойствами навигации для:
    • Таблица B со свойствами навигации для:
      • Таблица С

поэтому я стараюсь:

var query = context.TableA.where(a => a.TableB_navProperties.where(b => b.TbableC_navProperties.where(c => c.prop=="testCondition")));

Но этот запрос неверен: Visual Studio сказала: "невозможно преобразовать system.collection.generic.IEnumerable в bool"

Как я могу запросить таблицу с условием о дочерних свойствах дочерних элементов навигации?

Спасибо

1 ответ

Решение

Я нашел решение. Для свойств навигации, которые являются коллекцией, используйте Any() вместо where ():

var query = context.TableA.where(a => a.TableB_navProperties.Any(b => b.TbableC_navProperties.Any(c => c.prop=="testCondition"))); 

Это решение работает, но сгенерированный sql использует много "существующих подзапросов", поэтому я думаю, что он не очень эффективен.

Другие вопросы по тегам