Лямбда-выражение, получающее все данные из объекта

#c# #lambda

#c# #лямбда

Вопрос:

У меня есть таблица объединения пользовательских задач — с помощью служб ria я захожу и получаю usertaskjoin на основе идентификатора пользователя.

 UserTaskQueueJoin = new ObservableCollection<UserTaskQueueJoin>( _context.UserTaskQueueJoins);
  

как только я получу этот объект UserTaskJoin, я хочу затем получить задачи из запроса, который я запускаю.

 _query = _query.Where(x => UserTaskQueueJoin.Any(t => t.UserTaskQueueJoinID == x.AssignedToTaskQueueID));
  

UserTaskQueueJoin — UserTaskQueueJoinID, идентификатор пользователя, TaskQueueID

TaskQueue — TaskQueueID, InstitutionId, TaskQueueName

Task — идентификатор задачи, TaskQueueID, TaskName

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

Приведенный выше запрос явно не работает. Я пробовал с a .Выбираем Many и не можем заставить это работать.

Комментарии:

1. Я не совсем понимаю структуру вашего объекта. У вашего пользовательского объекта есть TaskId, а у вашего объекта task есть TaskId? Я бы подумал, что ваш объект task должен иметь идентификатор пользователя, чтобы установить это отношение «один ко многим». (у одного пользователя много задач)?

2. Итак, по сути, у вас есть Users объект и Tasks object и вы хотите объединить их вместе на основе идентификатора задачи, верно?

3. Знаете, может помочь краткое описание классов User и Task.

4. извините за путаницу. Я обновил вопрос, и он стал немного более понятным .. надеюсь?

5. Я использую этот запрос и отправляю его обратно в службу моего домена. У меня есть различные проверки, которые я добавляю к этому запросу. даты, активен, назначен мне … после того, как я создаю этот длинный запрос, я затем отправляю его обратно в свой вызов службы ria, и он выполняется.

Ответ №1:

Если ваша модель содержит все соответствующие отношения типа FK, это может быть так просто, как :

 _query = _query.SelectMany(x => x.UserTaskQueueJoins.TaskQueues.Tasks);
  

или даже

 _query = _query.SelectMany(x => x.TaskQueues.Tasks);