这个问题在这里已经有答案了:
linq where子句中的if条件(8个答案)
两年前关门了。
我有简单的代码:
Dim query as string = "SELECT id, red, yel, gre FROM table WHERE"
if a then query=query + " red=true OR"
if b then query=query + " yel=true OR"
if c then query=query + " gre=true"
if right(query,2)="OR" then query=left(query,len(query)-3)
如何在linq中实现等价?
更新:(我需要或运营商没有像许多其他例子在网站上)
1条答案
按热度按时间jei2mxaa1#
如果a、b和c是布尔变量,则以下代码起作用:
但如果你的意思是a,b和c是逻辑子句,你使用的是.net方法,比如
.ToString()
在它们中,您必须更改如下代码:因为.net方法不能在dbcontext上运行,所以首先调用
ToList()
传输数据,然后可以对传输的数据使用all.net方法。