Oracle запрос к LINQ - PullRequest
       5

Oracle запрос к LINQ

0 голосов
/ 17 июня 2020

Мы перемещаем наш уровень данных из oracle в структуру сущностей. Я пытаюсь написать этот запрос oracle в LINQ

  SELECT *
    FROM (SELECT   ld203_entity_id, ld203_entity_nm
              FROM f.ld203_ent_lst
             WHERE ld203_ent_nm <> 'Other' and LD203_ENT_HIDE='Y'
          ORDER BY ld203_ent_nm ASC)
  UNION ALL
  SELECT *
    FROM (SELECT   ld203_ent_id, ld203_ent_nm
              FROM f.ld203_ent_list 
             WHERE ld203_ent_nm = 'Other' and LD203_ENT_HIDE='Y'
          ORDER BY ld203_ent_nm ASC);   

Запрос LINQ пытаюсь ..

var ls =
                (from a in context.ld203_entity_list
                 where (a.ld203_entity_nm != "Other" && a.ld203_entity_hide == "Y")
                 select a.ld203_entity_id, a.ld203_entity_nm)
                .Union
                    (from b in context.ld203_entity_list
                     where b.ld203_entity_nm == "Other" && b.ld203_entity_hide == "Y"
                     select b.ld203_entity_id, b.ld203_entity_nm);

                dt = LINQResultToDataTable(ls);

Может ли кто-нибудь помочь, каким образом переписать это в LINQ C# .?

1 Ответ

0 голосов
/ 19 июня 2020

Вы можете использовать анонимный тип, чтобы использовать Union следующим образом:

var ls = (from a in context.ld203_entity_list
          where (a.ld203_entity_nm != "Other" && a.ld203_entity_hide == "Y")
          select new { Id = a.ld203_entity_id, Num = a.ld203_entity_nm } )
         .Union
            (from b in context.ld203_entity_list
             where b.ld203_entity_nm == "Other" && b.ld203_entity_hide == "Y"
             select new { Id = b.ld203_ent_id, Num = b.ld203_ent_nm});

Обратите внимание, что все свойства объявлены во всех экземплярах и должны иметь один и тот же тип данных. (Например, в вашем случае тип данных этих ld203_entity_id и ld203_ent_id должен быть одинаковым)

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

...