2

Как я могу написать следующий подзапрос в Linq:Linq к сущности подзапрос

Context.Set<Process>() 
     .Include(...) 
     .Where(x => x.Activity.Name.CompareTo(Context.Set<Activity>().Where(a => a.Id == activityId).Select(c => a.Name)) > 0) 
     .Take(1); 

Это упрощенная версия запроса, ИНЕКЕ только включает в себя часть, которая не работает. Если я изменяю Context.Set() .... подзапрос на константу строки, то запрос работает. Как это, это дает NotSupportedException

LINQ to entities does not recognize method Set<Activity> 
+0

Что произойдет, если вы используете упражнения DbSet явно: Context.Activities.Where (...)? –

ответ

1

Попробуйте это:

(from p in context.Set<Process>().Include(...) 
from a in context.Set<Activity>() 
where a.Id == activityId 
where p.Activity.Name.CompareTo(a.Name) > 0 
select p).Take(1); 
Смежные вопросы