共用方式為


服務作業參數 (ADO.NET 資料服務架構)

ADO.NET 資料服務架構所支援的服務作業允許資料服務在 URI 所識別的伺服器上公開 (Expose) 方法,如同所有其他 ADO.NET 資料服務資源。然後,您就可以使用 URI 查詢字串,將參數傳遞至此服務作業方法。

您可以透過將方法加入至繼承 System.Data.Services.DataService 類別 (Class) 而且代表資料服務本身的類別,建立服務作業。

下列程式碼會建立計算指定之城市中所有客戶的服務作業。請注意,this.CurrentDataSource 的參考會提供資料庫工作階段 (Session) 的存取權。

public class Northwind : DataService<NorthwindEntities>
{
    [WebGet]
    public IQueryable<Customer> CustomersByCity(string city)
    {
        if (string.IsNullOrEmpty(city))
        {
            throw new ArgumentNullException("city",
                                   "You must provide a city name argument");
        }

        return this.CurrentDataSource.Customers.Where("it.City = @city",
                                  new ObjectParameter("city", city));
    }
}

若要叫用 (Invoke) 此服務作業,請使用 URI 格式搭配直接對應至方法引數的查詢字串參數。例如,http://host/northwind.svc/CustomersByCity?city=London

上述服務作業範例不會直接傳回呼叫端所要求的資料。不過,此服務作業會傳回 IQueryable<T> 型別的查詢物件。.NET Framework v3.5 SP1 的 Language Integrated Query (LINQ) 功能支援 IQueryable<T>。透過傳回查詢而非資料,ADO.NET 資料服務架構仍然可以提供篩選、排序和分頁等選項。例如,查詢 http://host/northwind.svc/CustomersByCity?city=London&$orderby=CompanyName 會組合查詢與排序選項,並且傳回依據 CompanyName 所排序的結果。

若要限制服務作業,避免組合其他運算子,請傳回作業的結果而非查詢物件。在上述範例中,如果此方法沒有傳回結果,則方法的傳回型別必須是 IEnumerable<T> 或虛值 (Void)。

另請參閱

概念

ADO.NET 資料服務查詢選項
ADO.NET 資料服務系統查詢選項

其他資源

Entity Data Model