我有結構IFS:如何CONCAT凡在LINQ
if()
{
query = query.Where(....)
}
if()
{
query = query.Where(....)
}
爲他們做這兩個測試一起工作,而不會覆蓋對方?
我有結構IFS:如何CONCAT凡在LINQ
if()
{
query = query.Where(....)
}
if()
{
query = query.Where(....)
}
爲他們做這兩個測試一起工作,而不會覆蓋對方?
你應該能夠鏈查詢表達式:
query = query.Where(....).Where(....);
如果你想在謂語創造一定的靈活性,我建議LinqKit。有了這個庫,您可以動態建立Where
條款,以獲得,例如:
if(condition)
{
predicate.And(something);
}
if(otherCondition)
{
predicate.Or(somethingElse);
}
var result = source.Where(predicate);
它已開放的源代碼,很容易理解,立足Expression
類,這實際上是使用LINQ的。
還值得注意的是,只有在需要時才計算結果 - 所以這是爲Linq2SQL創建條件的一個很好的解決方案。
var flg1 = cond1 == null? true : cond1;
var flg2 = cond2 == null? true : cond2;
var result = query.Where(flg1 && flg2)
您也可以使用DynamicQuery library。然後你就可以像使用
query.Where("field1=1 and field2=2");
當'cond1'和'cond2'是sql條件引用查詢中使用的數據表時,請說明這是如何工作的。 – GSerg
,因爲他們做的這兩個測試一起工作,而不會覆蓋對方?
您的代碼將(取決於在if()
S中的結果)鏈中的查詢。
最終結果將是所有.Where(...)
s都應用於源。
您可以在Where claus –
-1中添加&&運算符。請正確地說出你的問題 – nawfal
@nawfal - 是的,就像使用'your'而不是'ur'。 –