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 Customers
te 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 Customers
te 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 ProductID
s en een berekende waarde met de naam HalfPrice
te 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
OrderID
s.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