我有一段如下的linq語法用來搜尋資料庫:
a => a.tdIsDelete != true && a.uStatus >= 0 && ((a.uLoginName != null && a.uLoginName.Contains(key)) || (a.uRealName != null && a.uRealName.Contains(key)))
其中,「uLoginName」及「uRealName」目前是or,但我希望依據用戶給予的參數來查詢。
例如:變數【bLoginName = true】而【變數bRealName=false】時,只確認uLoginName是否含包key,而不在乎uRealName是否有包含。
這時候我希望的linq語法如下:
a => a.tdIsDelete != true && a.uStatus >= 0 && ((a.uLoginName != null && a.uLoginName.Contains(key)))
請問我該怎麼做呢? 謝謝大家。
uj5u.com熱心網友回復:
a=> a.tdIsDelete != true && a.uStatus >= 0 && (((a.uLoginName != null && a.uLoginName.Contains(key)) && !(a.uRealName != null && a.uRealName.Contains(key)))?(a.uLoginName != null && a.uLoginName.Contains(key)):(a.uRealName != null && a.uRealName.Contains(key)))uj5u.com熱心網友回復:
謝謝您的回覆,很抱歉我沒有描述清楚問題,具體如下:
我有一個HTTP Get Method,其中keyword參數是用來對資料表欄位做關鍵字查詢,
而bLoginName和bRealName甚至bCreateTime…等參數是用來確認要不要針對這些欄位做查詢。
過去用ADO.NET可以自拼湊SQL語句,
但現在改用linQ不曉得該怎麼處理了,
再麻煩指導,謝謝了。
uj5u.com熱心網友回復:
使用LinqKit動態拼接linqvar where= LinqKit.PredicateBuilder.New<>(a=>a.xx=="");
if (xx)
{
where=where.And(a=>a.xx=="");
}
uj5u.com熱心網友回復:
Linq.Dynamichttps://blog.csdn.net/xuchen_wang/article/details/90749743
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/262728.html
標籤:C#
