如何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

回到顶部