如何CONCAT凡在LINQ
我有结构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");
回答:
,因为他们做的这两个测试一起工作,而不会覆盖对方?
您的代码将(取决于在if()
S中的结果)链中的查询。
最终结果将是所有.Where(...)
s都应用于源。
以上是 如何CONCAT凡在LINQ 的全部内容, 来源链接: utcz.com/qa/260219.html