1

次のようなサービス操作を行うC#ASP.NETアプリケーションを介してODATAサービスに接続しています。

GetItems(int? itemID, double? price)

私はブラウザで問題なくこれを消費することができます、例えば

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

LINQ to Entitiesを使用してODATAサービスを利用する方法は理解していますが、上記のC#のようなサービス操作を利用する方法についての適切な説明が見つかりません。VisualStudioソリューションでサービスへのWeb参照を作成しました。

これまでのところ、私は通常のデータ消費のために次のようなものを持っています:

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
}

ポインタはありますか?

4

3 に答える 3

3

OK、答えを得ました:

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();
}
于 2010-10-13T08:29:17.530 に答える
1

これはあなたの助けになるかもしれません。このサンプルコードは、WFCデータサービスでサービス操作を使用するために使用されました。このサービス操作(GetRowCount)は、integer(int)型の値を返します。入力パラネームは「コード」です

    var q = context.CreateQuery<int>("GetRowCount").AddQueryOption("code", "'" + serviceProvider.Code + "'");
            int RecordCount = context.Execute<int>(new Uri(q.RequestUri.ToString().Replace("GetRowCount()", "GetRowCount"))).FirstOrDefault();
于 2012-03-23T19:50:13.227 に答える
0

HttpWebRequestを使用してみましたか?

于 2010-10-07T11:28:55.883 に答える