if ...然后连接SQL查询,相当于LINQ - VB NET

时间:2018-05-17 11:33:55

标签: mysql vb.net linq if-statement

我只是代码:

 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中制作等效语言?

更新: (我需要OR运算符,而不是像网站上的许多其他示例一样)

1 个答案:

答案 0 :(得分:-1)

如果a,b和c是布尔变量,则以下代码有效:

Dim result = dbContext.Table();
result = result.Where(Function(r) (a And r.red) Or (b And r.yel) Or (c And r.gre));
result = result.ToList();

但是如果你的意思是a,b和c是逻辑子句,并且你正在使用像.ToString()这样的.net方法,你必须改变代码,如下所示:

Dim result = dbContext.Table().ToList();
result = result.Where(Function(r) (a And r.red) Or (b And r.yel) Or (c And r.gre));

因为.net方法无法在dbcontext上运行,所以首先调用ToList()来传输数据,之后可以在传输数据上使用所有.Net方法。