ajithk444 Ответов: 1

Запрос Linq с использованием оператора Case


Привет,

Я пытаюсь преобразовать приведенный ниже SQL-запрос в linq - запрос, но не могу этого сделать. я могу вам помочь, пожалуйста, как использовать этот тип оператора case, выполнив соединение и конкатенацию специального символа типа'*', если запись существует в другой таблице. Пожалуйста, помогите мне, как это сделать.

Select Distinct A.MyID, Title + case when D.MyID is not null then ' *' else '' end  as Title , MagTitle FROM [MasterTitles] A left outer join TitleDetails D on A.[MyID] = D.[MyID] where [PropertyID] is not null ORDER BY [Title]




Пожалуйста помочь

Maciej Los

Что именно вы пробовали?

Hardeep Saggi

Пожалуйста, объясните подробнее

1 Ответов

Рейтинг:
2

Maciej Los

Это может выглядеть так :

var qry = (from a in MasterTitles
          join d in TitleDetails on a.MyID equals d.MyID into grp
          from g in grp.DefaultIfEmpty()
          select new
          {
              MyID  = a.MyID,
              Title = grp != null ? string.Concat(a.Title, " *") : string.Empty
              //define next fields here
          }).Distinct();


Для получения дополнительной информации, пожалуйста, смотрите: Как выполнить левое внешнее соединение (руководство по программированию на C# )[^]


[no name]

+5 я люблю хранимые процедуры! :-)
- Себастьян

Maciej Los

Спасибо, Себастьян. ;)

jrafael83_2

Это здорово, но я столкнулся с требованием использования Case в Where. Есть ли какое-то решение для этого случая?

Maciej Los

Если у вас есть какой-либо конкретный вопрос, пожалуйста, не стесняйтесь задавать его на форуме QA. Используйте виджет "задать вопрос" в левом верхнем углу этого сайта. Тогда поделитесь ссылкой на свой вопрос, я посмотрю ее.