Наконец-то решил это.Чтобы вызвать операцию службы для класса обслуживания данных, вам необходимо использовать методы CreateQuery
или Execute
объекта контекста службы данных.Например:
ProductDataService ctx = new ProductDataService(
new Uri("http://localhost:1234/ProductDataService.svc/"));
// Method 1:
DataServiceQuery<Product> q = ctx.CreateQuery<Product>("GetProducts");
List<Product> products = q.Execute().ToList();
// Method 2:
Uri uri = new Uri(String.Format("{0}GetProducts", ctx.BaseUri),
UriKind.RelativeOrAbsolute);
List<Product> products = ctx.Execute<Product>(uri).ToList();
Если требуются параметры, скажем, категория продукта для операции службы с такой подписью:
[WebGet]
public IQueryable<Product> GetProducts(string category)
Мы бы сделали:
// Method 1:
DataServiceQuery<Product> q = ctx.CreateQuery<Product>("GetProducts")
.AddQueryOption("category", "Boats") ;
List<Product> products = q.Execute().ToList();
// Method 2:
Uri uri = new Uri(String.Format("{0}GetProducts?category={1}",
ctx.BaseUri, "Boats"), UriKind.RelativeOrAbsolute);
List<Product> products = ctx.Execute<Product>(uri).ToList();