亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Linq 查詢中的 String.contains

Linq 查詢中的 String.contains

C#
慕桂英4014372 2023-09-16 17:09:00
我有以下查詢。如果字符串不為空或為空,如何使其成為一個包含字符串的查詢if (!string.IsNullOrWhiteSpace(eventRequestModel.Description))    {      if (eventRequestModel.Severity.Count > 0)      {        eventsModelList = (from job in _unitOfWork.Repository<Jobs>().Get(j => eventRequestModel.SiteIds.Contains(j.JobId.ToString())).Result                           join ev in _unitOfWork.Repository<EventLogs>().Get(e => e.Description.Contains(eventRequestModel.Description) && eventRequestModel.Severity.Contains(e.Severity.ToString())).Result on job.JobId equals ev.JobId                           join pnl in _unitOfWork.Repository<Panels>().Get(el => eventRequestModel.SiteIds.Contains(el.JobId.ToString())).Result on ev.PanelId equals pnl.PanelId                           orderby ev.TimeStamp descending, ev.EventId descending                           select new EventsModel                           {                             UTCTimeStamp = ev.TimeStamp,                             EventType = ev.EventType,                             Description = ev.Description,                             PanelName = pnl.Name,                             SiteName = job.Name,                             ChannelGuid = ev.ChannelGuid,                             MapGuid = ev.MapGuid,                             Severity = ev.Severity,                             LogType = ev.LogType,                             Data1 = ev.Data1,                             Data2 = ev.Data2,                             Data3 = ev.Data3,                             Data4 = ev.Data4,                             PanelItemType = ev.PanelItemType,                             PanelItemId = ev.PanelItemId                           }).Take(numOfItems).ToList();      }
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

你的區別是


join ev in _unitOfWork.Repository<EventLogs>().Get(e => e.Description.Contains(eventRequestModel.Description) && eventRequestModel.Severity.Contains(e.Severity.ToString()))


                                                      //^^^^^^^^^^^^^^ Here

您可以使用三元運算符來避免if (!string.IsNullOrWhiteSpace(eventRequestModel.Description))檢查


喜歡,


join ev in _unitOfWork.Repository<EventLogs>()

 .Get(e => 

      string.IsNullOrWhiteSpace(eventRequestModel.Description) ? true : e.Description.Contains(eventRequestModel.Description)

      && eventRequestModel.Severity.Contains(e.Severity.ToString()))

你的整個代碼看起來像,


if (eventRequestModel.Severity.Count > 0)

      {

        eventsModelList = (from job in _unitOfWork.Repository<Jobs>().Get(j => eventRequestModel.SiteIds.Contains(j.JobId.ToString())).Result

                           join ev in _unitOfWork.Repository<EventLogs>().Get(e => string.IsNullOrWhiteSpace(eventRequestModel.Description) ? true : e.Description.Contains(eventRequestModel.Description) 

                                                                             // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Your answer is here

                           && eventRequestModel.Severity.Contains(e.Severity.ToString())).Result on job.JobId equals ev.JobId

                           join pnl in _unitOfWork.Repository<Panels>().Get(el => eventRequestModel.SiteIds.Contains(el.JobId.ToString())).Result on ev.PanelId equals pnl.PanelId

                           orderby ev.TimeStamp descending, ev.EventId descending

                           select new EventsModel

                           {

                             //Your code

                           }).Take(numOfItems).ToList();

      }

      else

      {

        eventsModelList = (from job in _unitOfWork.Repository<Jobs>().Get(j => eventRequestModel.SiteIds.Contains(j.JobId.ToString())).Result

                           join ev in _unitOfWork.Repository<EventLogs>().Get(e => string.IsNullOrWhiteSpace(eventRequestModel.Description) ? true : e.Description.Contains(eventRequestModel.Description) 

                                                                             // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Your answer is here  

                           && eventRequestModel.Severity.Contains(e.Severity.ToString())).Result on job.JobId equals ev.JobId

                           join pnl in _unitOfWork.Repository<Panels>().Get(el => eventRequestModel.SiteIds.Contains(el.JobId.ToString())).Result on ev.PanelId equals pnl.PanelId

                           orderby ev.TimeStamp descending, ev.EventId descending

                           select new EventsModel

                           {

                             //Your code

                           }).Take(numOfItems).ToList();

      }

    }


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 114 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號