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

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

條件Linq查詢

條件Linq查詢

C#
DIEA 2019-10-09 15:35:47
我們正在研究一個日志查看器。使用時可以選擇按用戶,嚴重性等進行過濾。在Sql天內,我將添加到查詢字符串中,但是我想使用Linq進行過濾。如何有條件地添加子句?
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

如果您只想過濾通過特定條件的情況,請執行以下操作


var logs = from log in context.Logs

           select log;


if (filterBySeverity)

    logs = logs.Where(p => p.Severity == severity);


if (filterByUser)

    logs = logs.Where(p => p.User == user);

這樣,您的表達式樹將完全符合您的要求。這樣,創建的SQL正是您所需要的,而且僅此而已。


查看完整回答
反對 回復 2019-10-09
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

我使用了類似于達人的答案,但是有了一個IQueryable接口:


IQueryable<Log> matches = m_Locator.Logs;


// Users filter

if (usersFilter)

    matches = matches.Where(l => l.UserName == comboBoxUsers.Text);


 // Severity filter

 if (severityFilter)

     matches = matches.Where(l => l.Severity == comboBoxSeverity.Text);


 Logs = (from log in matches

         orderby log.EventTime descending

         select log).ToList();

這將在命中數據庫之前建立查詢。該命令直到.ToList()最后才運行。


查看完整回答
反對 回復 2019-10-09
  • 3 回答
  • 0 關注
  • 454 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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