В платформе сущностей 6 возможно смешивать динамический SQL, сгенерированный динамически, с IQueryable следующим образом:
IQueryable<Tree> tree_query = context.Trees.Where(t=>t.Height> 2);
IEnumerable<int> tree_additional_filter = context.Database.SqlQuery<int>("SELECT Id FROM TREE_VIEW WHERE Width < 1");
IQueryable<Tree> final_query = from tree in tree_query
join filtering_tree in tree_additional_filter on filtering_tree.id equals tree.id
select tree;
Это дает результат как есть, но «tree_additional_filter» выполняется в базе данных для того, чтобыпостроить final_query. Как сделать так, чтобы инфраструктура сущностей создавала только один запрос из этого?
Мне нужно это для создания полей динамического фильтра, которые работают вместе со статическими.
Я также пытался создать сущность TREE_VIEW только с столбцом Idкоторый я знаю, чтобы всегда быть там. Использовал System.Linq.Dynamic для динамического конструирования предложения where на объекте TREE_VIEW, который имеет только свойство Id, но, очевидно, выражения не могут быть построены, если свойства не существуют в Type.