как мне обработать значение, когда значение равно нулю или пусто, используя запрос linq - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть этот код, который возвращает все билеты с информацией об ответе, поэтому, когда в Ticket_Reply не введено значение статуса, мне нужно показать «XXX»

enter    var query = (from st in Db.Support_Teckets
                     join pr in Db.Technical_problem on st.Technical_problem_Id equals pr.Technical_problem_Id
                     join x in 

                     from rp in Db.Ticket_Reply.GroupBy(m =>
       m.Support_Tecket_Id).Select(m => m.OrderByDescending(x=>x.Date).FirstOrDefault())
                     join tr in Db.trainers on rp.trainer_id equals tr.trainer_id
                     select new {rp,tr}


       on st.Support_Tecket_Id equals x.rp.Support_Tecket_Id into g

       from gx in g.DefaultIfEmpty()



                select new SupportTicketsDetails
            {

                Status = gx.rp.Status,



                }).ToList().OrderByDescending(a => a.Created_Date);

спасибо за сотрудничество

1 Ответ

0 голосов
/ 25 апреля 2020

Предполагая, что gx.rp.Status является строкой Попробуйте использовать троичный условный оператор, например

Status = string.IsNullOrWhiteSpace(gx.rp.Status) ? "XXX":gx.rp.Status

т.е.

enter    var query = (from st in Db.Support_Teckets
                 join pr in Db.Technical_problem on st.Technical_problem_Id equals pr.Technical_problem_Id
                 join x in 

                 from rp in Db.Ticket_Reply.GroupBy(m =>
   m.Support_Tecket_Id).Select(m => m.OrderByDescending(x=>x.Date).FirstOrDefault())
                 join tr in Db.trainers on rp.trainer_id equals tr.trainer_id
                 select new {rp,tr}


   on st.Support_Tecket_Id equals x.rp.Support_Tecket_Id into g

   from gx in g.DefaultIfEmpty()



            select new SupportTicketsDetails
        {

            Status = string.IsNullOrWhiteSpace(gx.rp.Status) ? "XXX":gx.rp.Status,



            }).ToList().OrderByDescending(a => a.Created_Date);
...