您好基於搜索條件建立一個LINQ語句的任何建議?有條件的地方在LINQ
我將傳入一個'SearchCriteria'類的實例,其中所有參數都爲空。
然後我想
if (sc.a != null)
// add to where
if (sc.b != null)
// add to where
的關鍵是這些被OR值不與運算。
任何提示?
對於獎勵積分,我想在int上使用'contains'但我只能得到等於或不等於。
您好基於搜索條件建立一個LINQ語句的任何建議?有條件的地方在LINQ
我將傳入一個'SearchCriteria'類的實例,其中所有參數都爲空。
然後我想
if (sc.a != null)
// add to where
if (sc.b != null)
// add to where
的關鍵是這些被OR值不與運算。
任何提示?
對於獎勵積分,我想在int上使用'contains'但我只能得到等於或不等於。
嘗試:
.Where(x =>
(x.a != null ? x.a == a : false) &&
(x.b != null ? x.b == b : false));
或
.Where(x =>
(x.a != null && x.a == a) ||
(x.b != null && x.b == b));
另外:
.Where(x => new int[] { 1, 2, 3 }.Contains(x.i));
&&應該是|| ? –
@Marc:或'':''操作符右手中的'false'。正確? – abatishchev
這似乎是一個乾淨優雅的解決方案......我會看到它的規模。重新開始第二部分。我有一個整數OrderID爲12345我希望能夠搜索123並找到可以做的字符串123 * .Contains但你不能使用整數?這可以工作嗎? –
「或」 是棘手的結合;做正確的事情,涉及表達樹,通常是訪問者/重寫者。你有多少變數?只有兩個?如果是這樣,坦率地做到這一點(即3個不同的常規線 - 一個X,一個Y,一個X || Y) –
什麼ORM? LINQ to SQL或實體框架? – abatishchev
它將潛在的十幾個參數..我正在使用EF .... –