在前幾節的例子中都生成where之後的條件,例如:
Products._.CategoryID == 2
代碼中這些就是生成條件,對應sql就是 categoryid=2
歸根到底這句代碼返回回來的是一個WhereClip.
WhereClip where = WhereClip.All;
這個是一個空值,也就是無條件。
不會生成where條件。
條件的組合
兩個條件同時成立:
Products._.UnitPrice > 1 && Products._.CategoryID == 2
等效sql就是 unitprice>1 and categoryid=2
兩個條件或
Products._.UnitPrice > 1 || Products._.CategoryID == 2
等效sql就是 unitprice>1 or categoryid=2
也就是 && 表示左右條件同時成立
|| 表示左右條件有一個成立即可
組件重載了操作符:
C# SQL > > >= >= <= <= < < == = != <>
寫法和sql類似,也方便記憶與書寫。
當然也可等效寫為:
WhereClip where = WhereClip.All;
where = where.And(Products._.UnitPrice > 1);
where = where.Or(Products._.CategoryID == 2);
where.And 等效於 &&
where.Or 等效於 ||
優先級可用()括起來,如下
(Products._.ProductName.Contain("apple") && Products._.UnitPrice > 1) || Products._.CategoryID == 2
等效sql就是 (productname like ‘%apple%' and unitprice>1) or categoryid=2
也等效於
WhereClip where = WhereClip.All;
where = where.And(Products._.ProductName.Contain("apple"));
where = where.And(Products._.UnitPrice > 1);
where = where.Or(Products._.CategoryID == 2);
下一節將講述Field中生成條件的方法。