Где пункт о дочерних свойствах навигации
Я попытался сделать запрос к таблице с "предложением where", основанной на многоуровневых дочерних свойствах навигации.
Я имею:
- Таблица А со свойствами навигации для:
- Таблица B со свойствами навигации для:
- Таблица С
- Таблица 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
Как я могу запросить таблицу с условием о дочерних свойствах дочерних элементов навигации?
Спасибо
1 ответ
Решение
Я нашел решение. Для свойств навигации, которые являются коллекцией, используйте Any() вместо where ():
var query = context.TableA.where(a => a.TableB_navProperties.Any(b => b.TbableC_navProperties.Any(c => c.prop=="testCondition")));
Это решение работает, но сгенерированный sql использует много "существующих подзапросов", поэтому я думаю, что он не очень эффективен.