Aracılığıyla paylaş


Nasıl yapılır: Veri Al bir sorgudan kodunu kullanarak

Modelden sorguları geri alabilir ve sonra bunları kodunuzda uygulayabilirsiniz.Bu, uygulamanızın iş mantığında hedeflenen veri koleksiyonları ile çalışmanızı sağlar.

Örneğin, modeliniz Products in Stock adlı bir sorgulama içerebilir.Bir ürün varsa, alır doğrulama kodu yazabilirler belirlemek için Products in Stock sorgulamak ve sonra sorguyu yürütür.Sorguyu yürüttükten sonra kodunuzu elde edilen koleksiyon üzerinden yineleyebilirsiniz.Bu koleksiyondaki bir ürün geçerli satış siparişindeki bir ürün ile eşleşiyorsa, kullanıcı gecikme hakkında müşteriye bildirim yapabilir.

Bir where yan tümcesi kullanarak sorgu sonuçlarını daraltmak için de kodu ekleyebilirsiniz.Bir sorgunun sonuçlarını daraltma maddesinin performansı geliştirebileceği yerlerde kullanılması, sunucu katmanında uygulanması sonucunu doğurur.Daha fazla bilgi için bkz. Sorgu: Bir veri kaynağındaki bilgileri alınıyor.

Örnek: Bir sorgudan veri almak ve sonuçları yineleme

Bir kullanıcı bir satış siparişi için yeni bir satır eklediğinde aşağıdaki yardımcı yöntem çağrılır.Order_Details adlı bir varlık olsaydı, bu yöntemi Order_Details_Inserting yönteminden çağırabilirdiniz.

Bu kod TopNSalesOrders adlı bir sorgu yürüterek satış siparişlerine göre en iyi on müşteriyi alır.Bu siparişi veren müşterinin kimliği sorgu tarafından döndürülen herhangi bir müşterinin kimliğiyle eşleşirse, satır öğesine % 10 indirim uygulanır.

Private Sub Good_Customer_Discount(ByVal entity As Order_Detail)
    For Each cust As Customer In _
        Me.DataWorkspace.NorthwindData.TopNSalesOrders(10)
        If cust.CustomerID = entity.Order.Customer.CustomerID Then
            entity.Discount = 0.1
        End If
    Next

End Sub
private void Good_Customer_Discount(Order_Detail entity)
{
    foreach (Customer cust in this.DataWorkspace.NorthwindData.
 TopNSalesOrders(10))
    {
        if (cust.CustomerID == entity.Order.Customer.CustomerID)
        {
            entity.Discount = 0.1F;
        }
    }
}

Örnek: Where yan tümcesi kullanarak bir sorgunun sonuçlarını daraltmak

Aşağıdaki kod, önceki örneğe alternatif olarak kullanılabilir.Bu kod TopNSalesOrders sorgusuna sorulan where yan tümcesi için geçerlidir ve sadece müşteri mevcut siparişi yerleştiriyorsa döner...

Private Sub Good_Customer_Discount2(ByVal entity As Order_Detail)
    Dim query As IDataServiceQueryable(Of Customer)
    query = From mycustomer In Me.DataWorkspace.NorthwindData.TopNSalesOrders(10)
            Where mycustomer.CustomerID = entity.Order.Customer.CustomerID
            Select mycustomer

    If Not IsNothing(query.SingleOrDefault) Then
        entity.Discount = 0.01
    End If

End Sub
private void Good_Customer_Discount2(Order_Detail entity)
{
    IDataServiceQueryable<Customer> query;

    query = from myCustomer in this.DataWorkspace.NorthwindData.
                TopNSalesOrders(10)
            where myCustomer.CustomerID == entity.Order.Customer.CustomerID
            select myCustomer;

    if (query.SingleOrDefault() != null)
    {
        entity.Discount = 0.1F;
    }
}
}

Sonraki Adımlar

Sorgu tasarımcısını kullanarak nasıl sorgu tasarlayacağını öğrenme, bakınız Nasıl yapılır: Sorgu Tasarımcısı'nı kullanarak bir sorgu tasarlama.

Kod kullanarak bir sorgu modelini nasıl genişleteceğinizi öğrenmek için bkz: Nasıl yapılır: kod kullanarak bir sorgu genişletin.

Ayrıca bkz.

Görevler

Nasıl yapılır: ekleme, kaldırma ve bir sorguyu değiştirin

İzlenecek yol: ekran tasarımı

Nasıl yapılır: Sorgu Tasarımcısı'nı kullanarak bir sorgu tasarlama

Nasıl yapılır: kod kullanarak bir sorgu genişletin

Diğer Kaynaklar

Sorgu: Bir veri kaynağındaki bilgileri alınıyor