Я хочу выполнить запрос linq, который вернет значения в мой пользовательский DTO.Этот конкретный запрос linq должен будет учитывать объединения из нескольких таблиц с использованием операторов регистра переключателя, count (*) и группировки по
. Это пример SQL-версии запроса, для которого мне потребуется эквивалент LinQ...
select
slm.SLType,
count(c.EStatID) as EStat,
COUNT(cpd.TrId) as Training,
COUNT(
CASE WHEN cpd.TrStat= 44 THEN 1
WHEN cpd.TrStat!= 44 THEN NULL
WHEN cpd.TrStat IS NULL THEN NULL
END) as TrainingComplete,
COUNT(
CASE WHEN cpd.CndAssess = 44 THEN 1
WHEN cpd.CndAssess != 44 THEN NULL
WHEN cpd.CndAssess IS NULL THEN NULL
END) as AssessmentComplete
from TabC c , TabCPD cpd, TabSLM slm
where cpd.SLid = slm.SLid
and c.Id= cpd.CID
and c.O_Id = 1
group by slm.SLType
Возвращает записи в следующем формате.Я поместил каждую запись как новую строку с полями, разделенными запятыми.Указанные ниже цифры приведены в качестве примера.
TypeA, 0 , 1 , 1, 0
TypeB, 1 , 0 , 1, 0
Я пытаюсь создать запрос linq в формате, аналогичном приведенному ниже, без особой удачи
var query =
from c in TabC, ......
select new MyCustomTableC_DTO
{
DTOproperty = c.MatchingTable property,....
}
MyCustomTableC_DTO будет иметь свойствокаждое поле в запросе.Есть идеи, как этого добиться?Запрос, который я буду использовать для создания списка типа MyCustomTableC_DTO
Спасибо за ваше время ...