Delen via


Projecties formuleren

In de volgende voorbeelden ziet u hoe de instructie in C# en Select de select instructie in Visual Basic kan worden gecombineerd met andere functies om queryprojecties te vormen.

Voorbeeld 1

In het volgende voorbeeld wordt de Select component in Visual Basic (select component in C#) gebruikt om een reeks contactnamen voor Customerste retourneren.

var nameQuery =
    from cust in db.Customers
    select cust.ContactName;
Dim nameQuery = From cust In db.Customers _
                Select cust.ContactName

Voorbeeld 2

In het volgende voorbeeld wordt de Select component in Visual Basic (select component in C#) en anonieme typen gebruikt om een reeks contactnamen en telefoonnummers voor Customerste retourneren.

var infoQuery =
    from cust in db.Customers
    select new { cust.ContactName, cust.Phone };
Dim infoQuery = From cust In db.Customers _
                Select cust.ContactName, cust.Phone

Voorbeeld 3

In het volgende voorbeeld wordt de Select component in Visual Basic (select component in C#) en anonieme typen gebruikt om een reeks namen en telefoonnummers voor werknemers te retourneren. De FirstName velden en LastName velden worden gecombineerd in één veld (Name) en het HomePhone veld wordt gewijzigd Phone in de resulterende volgorde.

var info2Query =
    from emp in db.Employees
    select new
    {
        Name = emp.FirstName + " " + emp.LastName,
        Phone = emp.HomePhone
    };
Dim info2Query = From emp In db.Employees _
                 Select Name = emp.FirstName & " " & emp.LastName, _
             Phone = emp.HomePhone

Voorbeeld 4

In het volgende voorbeeld wordt de Select component in Visual Basic (select component in C#) en anonieme typen gebruikt om een reeks van alle ProductIDs en een berekende waarde met de naam HalfPricete retourneren. Deze waarde wordt ingesteld op de UnitPrice gedeelde waarde door 2.

var specialQuery =
    from prod in db.Products
    select new { prod.ProductID, HalfPrice = prod.UnitPrice / 2 };
Dim specialQuery = From prod In db.Products _
                   Select prod.ProductID, HalfPrice = CDec(prod.UnitPrice) / 2

Voorbeeld 5

In het volgende voorbeeld wordt de Select component in Visual Basic (select component in C#) en een voorwaardelijke instructie gebruikt om een reeks productnamen en beschikbaarheid van producten te retourneren.

var prodQuery =
    from prod in db.Products
    select new
    {
        prod.ProductName,
        Availability =
            prod.UnitsInStock - prod.UnitsOnOrder < 0
        ? "Out Of Stock" : "In Stock"
    };
Dim prodQuery = From prod In db.Products _
                Select prod.ProductName, Availability = _
                    If(prod.UnitsInStock - prod.UnitsOnOrder < 0, _
                    "Out Of Stock", "In Stock")

Voorbeeld 6

In het volgende voorbeeld wordt een Visual Basic-component Select (select component in C#) en een bekend type (naam) gebruikt om een reeks van de namen van werknemers te retourneren.

public class Name
{
    public string FirstName = "";
    public string LastName = "";
}

 void empMethod()
 {
 Northwnd db = new Northwnd(@"c:\northwnd.mdf");
 var empQuery =
     from emp in db.Employees
     select new Name
     {
         FirstName = emp.FirstName,
         LastName = emp.LastName
     };
}
Public Class Name
    Public FirstName As String
    Public LastName As String
End Class

Dim db As New Northwnd("c:\northwnd.mdf")
Dim empQuery = From emp In db.Employees _
               Select New Name With {.FirstName = emp.FirstName, .LastName = _
                   emp.LastName}

Voorbeeld 7

In het volgende voorbeeld wordt gebruikgemaakt Select van en Where in Visual Basic (select en where in C#) om een gefilterde reeks contactnamen voor klanten in Londen te retourneren.

var contactQuery =
    from cust in db.Customers
    where cust.City == "London"
    select cust.ContactName;
Dim contactQuery = _
    From cust In db.Customers _
    Where cust.City = "London" _
    Select cust.ContactName

Voorbeeld 8

In het volgende voorbeeld wordt een Select component in Visual Basic (select component in C#) en anonieme typen gebruikt om een vormgegeven subset van de gegevens over klanten te retourneren.

var custQuery =
    from cust in db.Customers
    select new
    {
        cust.CustomerID,
        CompanyInfo = new { cust.CompanyName, cust.City, cust.Country },
        ContactInfo = new { cust.ContactName, cust.ContactTitle }
    };
Dim custQuery = From cust In db.Customers _
                Select cust.CustomerID, CompanyInfo = New With {cust.CompanyName, _
                    cust.City, cust.Country}, ContactInfo = _
                    New With {cust.ContactName, cust.ContactTitle}

Voorbeeld 9

In het volgende voorbeeld worden geneste query's gebruikt om de volgende resultaten te retourneren:

  • Een reeks van alle orders en de bijbehorende OrderIDs.

  • Een subsequentiteit van de items in de volgorde waarvoor een korting geldt.

  • Het bedrag dat wordt bespaard als de kosten van verzending niet zijn inbegrepen.

var ordQuery =
    from ord in db.Orders
    select new
    {
        ord.OrderID,
        DiscountedProducts =
            from od in ord.OrderDetails
            where od.Discount > 0.0
            select od,
        FreeShippingDiscount = ord.Freight
    };
Dim ordQuery = From ord In db.Orders _
               Select ord.OrderID, DiscountedProducts = _
               (From od In ord.OrderDetails _
                Where od.Discount > 0.0 _
                Select od), _
           FreeShippingDiscount = ord.Freight

Zie ook