Aracılığıyla paylaş


Projeksiyonları Formüle Edin

Aşağıdaki örneklerde, C#'taki select deyimi ve Visual Basic'teki Select deyiminin, sorgu projeksiyonları oluşturmak için diğer özelliklerle nasıl birleştirilebileceği gösterilmektedir.

Örnek 1

Aşağıdaki örnekte, Select Visual Basic'teki yan tümce (select C#'deki yan tümce) kullanılarak, Customers için kişilerinin adlarından oluşan bir dizi döndürülür.

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

Örnek 2

Aşağıdaki örnek, Select yan tümcesi (C# için select yan tümcesi) ve anonim türler kullanarak Customers için kişi adlarının ve telefon numaralarının bir dizisini döndürür.

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

Örnek 3

Aşağıdaki örnek, Visual Basic'teki Select yan tümcesi (select C# yan tümcesi) ve anonim türler kullanarak, çalışanlar için bir dizi ad ve telefon numarası döndürür. FirstName ve LastName alanları tek bir alan olan Name'ye birleştirilir ve sonuçta elde edilen sırada HomePhone alanı Phone olarak yeniden adlandırılır.

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

Örnek 4

Aşağıdaki örnek, Visual Basic'teki Select yan tümcesini (select C# yan tümcesi) ve anonim türleri kullanarak tüm ProductID dizisini ve HalfPrice adlı hesaplanmış bir değeri döndürür. Bu değer, UnitPrice değeri 2'ye bölünerek ayarlanır.

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

Örnek 5

Aşağıdaki örnekte, Visual Basic'teki Select yan tümcesi ve C#'taki select yan tümcesi ile bir koşullu deyim kullanılarak ürün adı ve ürün kullanılabilirliği dizisi döndürülmektedir.

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")

Örnek 6

Aşağıdaki örnekte, çalışan adlarının bir dizisini döndürmek için Visual Basic Select yan tümcesi (select C# dilinde yan tümce) ve bilinen bir tür (Ad) kullanılmaktadır.

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}

Örnek 7

Aşağıdaki örnek, Visual Basic'te Select ve Where'i (select ve where C# dilinde) kullanarak Londra'daki müşteriler için filtrelenmiş bir kişi adları dizisi döndürür.

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

Örnek 8

Aşağıdaki örnek, Visual Basic'te bir Select yan tümcesi (C#'te select yan tümcesi) ve anonim türler kullanarak, müşterilerle ilgili verilerin şekillendirilmiş bir alt kümesini döndürür.

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}

Örnek 9

Aşağıdaki örnek, aşağıdaki sonuçları döndürmek için iç içe sorguları kullanır:

  • Tüm siparişlerin ve bunların karşılık gelen OrderID'larının bir dizisi.

  • İndirim uygulanan sıradaki öğelerin alt dizisi.

  • Sevkiyat maliyeti dahil değilse tasarruf edilen para miktarı.

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

Ayrıca bakınız