Связать более одного столбца с лямбда-выражением - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть запрос ниже, который относится только к ProcessId. Мне нужно знать, как связать процессы списков и pendingProcess по ProcessId и GroupId. Благодарный.

        return process.Join(
            pendingProcess,
            p => p.ProcessId,
            pp => pp.ProcessId,
            (p, pp) => new Process
            {
                ProcessId = p.ProcessId,
                GroupId = p.GroupId,
                Text = p.Text,
            }

        ).ToList();

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Если вы предпочитаете лямбда-выражение;

return process
    .Where(p => pendingProcess.Any(pp=> pp.GroupId == p.GroupId && pp.Precessid == p.PreocessId))
    .Select(p=> new Process
            {
                ProcessId = p.ProcessId,
                GroupId = p.GroupId,
                Text = p.Text,
            }).ToList();
0 голосов
/ 09 апреля 2019

Использовать составное условие соединения через анонимные типы:

return process.Join(pendingProcess,
    p => new { p.ProcessId, p.GroupId }
    pp => new { ProcessId = (int)pp.ProcessId, pp.GroupId }
    (p, pp) => new Process
    {
        ProcessId = p.ProcessId,
        GroupId = p.GroupId,
        Text = p.Text,
    }).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...