您好基于搜索条件建立一个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 .... –