Использование сервиса ODATA из C # ASP.NET 4.0 - PullRequest
1 голос
/ 07 октября 2010

Я подключаюсь к службе ODATA через приложение C # ASP.NET, которое выполняет такие операции службы, как:

GetItems(int? itemID, double? price)

Я могу использовать это без проблем в моем браузере, например,

http://api.mycompany.com/companycatalogue/GetItems?itemID=4

Я понимаю, как использовать LINQ to Entities для использования службы ODATA, но не могу найти достойного объяснения того, как использовать службу операций , как показано выше в C #.Я сделал веб-ссылку на службу в своем решении Visual Studio.

До сих пор у меня было что-то подобное для моего обычного потребления данных:

using CompanyCatalogue; //my web reference
...
protected void Page_Load(object sender, EventArgs e)
{
    CompanyCatalogueEntities dataContext = new CompanyCatalogueEntities (new Uri("http://api.mycompany.com/companycatalogue/"));
    var result = from i in dataContext.Items select i;  //just an example

    //this is where I get into problems
    var operationResults = CompanyCatalogue.GetItems(6, 20.5); //I just made this up
}

Какие-нибудь указатели?

Ответы [ 3 ]

3 голосов
/ 13 октября 2010

ОК, получил ответ:

using CompanyCatalogue; //my web reference
...
protected void Page_Load(object sender, EventArgs e)
{
    CompanyCatalogueEntities dataContext = new CompanyCatalogueEntities(); 

    DataServiceQuery<GetItemsResult> q = dataContext.CreateQuery<GetItemsResult>("GetItems")
        .AddQueryOption("paramName", 6)
        .AddQueryOption("paramName2", 20.5);

    List<GetItemsResult> items = q.Execute().ToList();
}
1 голос
/ 23 марта 2012

Это может помочь вам. Этот пример кода используется для использования операции сервиса в WFC Data Service. Эта сервисная операция (GetRowCount) возвращает значение типа integer (int). имя входного параметра "code"

    var q = context.CreateQuery<int>("GetRowCount").AddQueryOption("code", "'" + serviceProvider.Code + "'");
            int RecordCount = context.Execute<int>(new Uri(q.RequestUri.ToString().Replace("GetRowCount()", "GetRowCount"))).FirstOrDefault();
0 голосов
/ 07 октября 2010

Вы пробовали использовать HttpWebRequest?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...