共用方式為


HOW TO:使用程式碼從查詢擷取資料

您可以從模型中擷取查詢,然後在程式碼中加以執行。 這可讓您在應用程式商務邏輯中使用資料的目標集合。

例如,您的模型可能包含名為 Products in Stock 查詢。 若要判斷產品是否可用,您可以撰寫可擷取 Products in Stock 查詢的驗證程式碼,然後執行查詢。 執行查詢後,您的程式碼可以反覆查看結果集合。 如果這個集合中的產品符合目前銷售訂單中的產品,使用者可以通知客戶以告知延遲。

您還可以加入程式碼,透過使用 where 子句以縮小查詢結果。 使用 where 子句縮小查詢結果,可以提高效能,因為 where 子句的條件是套用在伺服器層。 如需詳細資訊,請參閱查詢:從資料來源擷取資訊

範例:從查詢中擷取資料,並逐一查看結果

當使用者在銷售訂單中加入一個新行時,會呼叫下列 Helper 方法。 如果您有一個名為 Order_Details 的實體,可以從 Order_Details_Inserting 方法呼叫這個方法。

此程式碼透過執行名為 TopNSalesOrders 的查詢,根據銷售訂單擷取前十大客戶。 如果這個訂單的客戶 ID 符合查詢所傳回的任何客戶 ID,10% 折扣會套用至行項目。

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;
        }
    }
}

範例:透過套用 Where 子句,縮小查詢的結果

下列程式碼可做為上一個範例的替代方法。 此程式碼會將 where 子句套用至 TopNSalesOrders 查詢,而且只在客戶是目前訂單的下單者時,才會傳回客戶。

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;
    }
}
}

後續步驟

若要了解如何使用設計工具,以視覺化方式設計查詢,請參閱 HOW TO:使用查詢設計工具設計查詢

若要了解如何透過使用程式碼來擴充模型中的查詢,請參閱 HOW TO:使用程式碼擴充查詢的功能

請參閱

工作

HOW TO:新增、移除和修改查詢

逐步解說:設計螢幕

HOW TO:使用查詢設計工具設計查詢

HOW TO:使用程式碼擴充查詢的功能

其他資源

查詢:從資料來源擷取資訊