Динамическое добавление левых соединений/столбцов в LINQ

#c# #linq #lambda #dynamic-linq #dynamic-linq-core

Вопрос:

У меня есть следующие две таблицы,

Идентификатор клиента
1
2
3
Идентификатор клиента РелИД Ценность
1 1 азбука
2 2 защита
3 1 ghi
1 3 ijk
2 4 lmn

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

Идентификатор клиента 1 (RelID) 4 (RelID)
1 азбука нулевой
2 нулевой lmn
3 ghi нулевой

Я могу легко добиться этого в SQL-запросе, так как все, что мне нужно будет сделать, это добавить несколько левых соединений, мне нужно будет сгенерировать динамический SQL-запрос. Возможно ли достичь чего-то подобного с помощью dynamic LINQ? Я играл с динамическим LINQ, но я не уверен, смогу ли я заставить это работать? Я заметил сообщение в reddit с аналогичными требованиями к моему, но метод по этой ссылке не работает для меня. Пожалуйста, помогите мне. Если это невозможно, мне, вероятно, придется создать динамический SQL-запрос с использованием строковых операций.

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

1. C#/LINQ обычно строго типизирован — какого типа вы ожидаете получить результат? Как бы вы использовали полученный результат?

2. Добавьте образец нединамического запроса LINQ.