Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgenden Beispiele zeigen, wie die select Anweisung in C# und Select Anweisung in Visual Basic mit anderen Features kombiniert werden kann, um Abfrageprojektionen zu erstellen.
Beispiel 1
Im folgenden Beispiel wird die Select-Klausel in Visual Basic (die select-Klausel in C#) verwendet, um eine Reihe von Kontaktnamen für Customers zurückzugeben.
var nameQuery =
from cust in db.Customers
select cust.ContactName;
Dim nameQuery = From cust In db.Customers _
Select cust.ContactName
Beispiel 2
Im folgenden Beispiel wird die Select-Klausel in Visual Basic (die select-Klausel in C#) und Anonyme Typen verwendet, um eine Sequenz von Kontaktnamen und Telefonnummern für zurückzugeben.
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
Beispiel 3
Im folgenden Beispiel wird die Select Klausel in Visual Basic (select Klausel in C#) und anonymen Typen verwendet, um eine Abfolge von Namen und Telefonnummern für Mitarbeiter zurückzugeben. Die Felder FirstName und LastName werden zu einem einzigen Feld (Name) kombiniert, und das HomePhone-Feld wird in der resultierenden Sequenz zu Phone umbenannt.
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
Beispiel 4
Im folgenden Beispiel wird die Select Klausel in Visual Basic (select Klausel in C#) und anonymen Typen verwendet, um eine Sequenz aller ProductIDs und einen berechneten Wert mit dem Namen HalfPricezurückzugeben. Dieser Wert wird auf den UnitPrice, geteilt durch 2, festgelegt.
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
Beispiel 5
Im folgenden Beispiel wird die Select Klausel in Visual Basic (select Klausel in C#) und eine bedingte Anweisung verwendet, um eine Sequenz von Produktname und Produktverfügbarkeit zurückzugeben.
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")
Beispiel 6
Im folgenden Beispiel wird eine Visual Basic-Klausel Select (select Klausel in C#) und ein bekannter Typ (Name) verwendet, um eine Sequenz der Namen der Mitarbeiter zurückzugeben.
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}
Beispiel 7
Das folgende Beispiel verwendet Select und Where in Visual Basic (select und where in C#), um eine gefilterte Abfolge von Kontaktnamen für Kunden in London zurückzugeben.
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
Beispiel 8
Im folgenden Beispiel werden eine Select-Klausel in Visual Basic (select-Klausel in C#) und anonyme Typen verwendet, um eine geformte Teilmenge der Kundendaten zurückzugeben.
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}
Beispiel 9
Im folgenden Beispiel werden geschachtelte Abfragen verwendet, um die folgenden Ergebnisse zurückzugeben:
Eine Sequenz aller Bestellungen und der entsprechenden
OrderIDs.Eine Untersequenz der Elemente in der Bestellung, für die es einen Rabatt gibt.
Der Betrag, der bei nicht inbegriffenen Versandkosten gespart wird.
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