Frage

ich den Anschluss an einen ODATA Dienst über eine C # ASP.NET-Anwendung, die Service-Operationen, zB:

GetItems(int? itemID, double? price)

Das kann ich verbrauchen, ohne Probleme in meinem Browser, z.

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

Ich verstehe, wie LINQ to Entities verwenden, um einen ODATA Service zu konsumieren, kann aber nicht eine anständige Erklärung finden, wie Service zu konsumieren Operationen , wie die oben in C #. Ich habe eine Web-Referenz auf den Dienst in meiner Visual Studio-Lösung gemacht.

Bisher habe ich so etwas für meine übliche verzehr der Daten:

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
}

Alle Zeiger?

War es hilfreich?

Lösung

OK, bekam die Antwort:

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

Andere Tipps

Dies kann Hilfe für Sie sein. Dieser Beispielcode verwendet, um den Service-Betrieb in dem WFC Data Service zu konsumieren. Diese Service-Operation (GetRowCount) gibt die Ganzzahl (int) Typwert. Eingabe para Name ist "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();

Haben Sie versucht mit HttpWebRequest?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top