LINQ - Соединяйте таблицу с другим, только когда внешнее условие удовлетворяет - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть задача соединить стол с другим.

Table 1: some data with Table1Id column.
Table 2: some data with Table2Id column.
Table 3: some data with Table3Id column.

Теперь я хочу присоединиться к Таблице1 с Таблицей2. Но здесь я хочу объединить Table1 с Table3, только если условие удовлетворяет.
Если условие не удовлетворяет, таблица не должна быть включена только.
Как это возможно в LINQ под вопросом.

Пример:

var data = (from temp in Table1 join temp2 in Table2 on temp.Table1Id equals temp2.Table2Id
           select temp).ToList();

Здесь, в самом запросе я хочу проверить условие и, основываясь на условии, я хочу соединить Table1 и Table2 с Table3. И это условие основано не на столбцах таблицы, а на внешнем условии.

Шаг 1: соединить таблицу 1 с таблицей 2.
Шаг 2 ; if (внешнее условие == "Да, присоединиться к Table3")
затем присоединитесь к Table3. Любой совет или предложение будут благодарны.
Английский не мой родной язык, поэтому, пожалуйста, не обижайтесь.

1 Ответ

0 голосов
/ 07 сентября 2018

Метод 1: Шаг 1: Соедините Table1 и Table2 и сохраните его в переменной, скажем, XYZ Шаг 2: Соедините XYZ и Table3 в зависимости от условия и сохраните

    var XYZ = (from temp in Table1 join temp2 in Table2 on temp.Table1Id equals temp2.Table2Id
               select temp).ToList();
    if condition ()
    {
        var data = (from temp in XYZ join temp3 in Table3 on temp.Table1Id equals temp2.Table2Id
               select temp).ToList();
   }

Метод 2: Используйте левое соединение на table3. В linq вы можете использовать GroupJoin для этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...