LINQ学習

2386 ワード

Where操作
適用シーン:フィルタリング、クエリーなどの機能を実現します.
説明:SQLコマンドのWhereと同様に、範囲限定、すなわちフィルタリングの役割を果たしますが、判断条件はその後ろに続く句です.
Where操作は,単純形式,関係条件形式,First()形式の3つの形式を含む.例を次に示します.
1.簡単な形式:
たとえば、whereを使用してロンドンの顧客をフィルタします.
var q =

    from c in db.Customers

    where c.City == "London"

    select c;

さらに、1994年以降に雇用された従業員をフィルタします.
var q =

    from e in db.Employees

    where e.HireDate >= new DateTime(1994, 1, 1)

    select e;

2.関係条件形式:
在庫量が発注ポイントレベル以下であるが、品切れしていない製品を選別する.
var q =

    from p in db.Products

    where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued

    select p;

UnitPriceが10より大きい製品または生産停止している製品を選別します.
var q =

    from p in db.Products

    where p.UnitPrice > 10m || p.Discontinued

    select p;

次の例では、UnitPriceが10より大きく、生産停止している製品をフィルタするためにwhereを2回呼び出します.
var q =

    db.Products.Where(p=>p.UnitPrice > 10m).Where(p=>p.Discontinued);

3.First()形式:
SQL文にTOP(1)を付けることを意味するコレクション内の要素を返します.
簡単な使い方:表の最初の出荷元を選択します.
Shipper shipper = db.Shippers.First();

要素:CustomerIDが「BONAP」の個々の顧客を選択
Customer cust = db.Customers.First(c => c.CustomerID == "BONAP");

条件:運賃が10.00より大きいオーダーを選択します.
Order ord = db.Orders.First(o => o.Freight > 10.00M);