N years ago, we joined the query string in this way:
Public String test (string a, string B, string C, string d) <br/>{< br/> string SQL = "select * from users where 1 = 1 "; <br/> If (! String. isnullorempty (A) <br/>{< br/> SQL + = "and name = '" + A + "'"; <br/>}< br/> If (! String. isnullorempty (B) <br/>{< br/> SQL + = "and age = '" + B + "'"; <br/>}< br/> If (! String. isnullorempty (c) <br/>{< br/> SQL + = "and sex = '" + C + "'"; <br/>}< br/> If (! String. isnullorempty (D) <br/>{< br/> SQL + = "and address = '" + D + "'"; <br/>}< br/> return SQL. tostring (); <br/>}
Now we use LINQ to implement the above Code:
Public void test (string a, string B, string C, string d) <br/>{< br/> querycontext query = new querycontext (); <br/> var q = from u in query. users <br/> select U; <br/> If (! String. isnullorempty (A) <br/>{< br/> q = Q. where (P => P. name = A); <br/>}< br/> If (! String. isnullorempty (B) <br/>{< br/> q = Q. where (P => P. age = B); <br/>}< br/> If (! String. isnullorempty (c) <br/>{< br/> q = Q. where (P => P. sex = C); <br/>}< br/> If (! String. isnullorempty (D) <br/>{< br/> q = Q. where (P => P. address = D); <br/>}< br/> q. tolist (); // all the above if statements are executed only here <br/>}
PS: If the query string is not "and", but "or ",
For example:
Public String test (string a, string B, string C, string d) <br/>{< br/> string SQL = "select * from users where 1 = 1 "; <br/> If (! String. isnullorempty (A) <br/>{< br/> SQL + = "or name = '" + A + "'"; <br/>}< br/> If (! String. isnullorempty (B) <br/>{< br/> SQL + = "or age = '" + B + "'"; <br/>}< br/> If (! String. isnullorempty (c) <br/>{< br/> SQL + = "or sex = '" + C + "'"; <br/>}< br/> If (! String. isnullorempty (D) <br/>{< br/> SQL + = "or address = '" + D + "'"; <br/>}< br/> return SQL. tostring (); <br/>}
In this case, you can implement the following through LINQ:
Public void test (string a, string B, string C, string d) <br/>{< br/> querycontext query = new querycontext (); <br/> var Q1 = from u in query. users <br/> where u. name = A &! = "" <Br/> | U. Age = B & B! = "" <Br/> | U. Sex = C & C! = "" <Br/> | U. Address = D & D! = "" <Br/> select U; <br/> q1.tolist (); <br/>}