odataは、C#asp.net 4.0からサービス操作を消費します
-
28-09-2019 - |
質問
次のようなサービスオペレーションを備えたC#ASP.NETアプリケーションを介してODATAサービスに接続しています。
GetItems(int? itemID, double? price)
ブラウザで問題なくこれを消費することができます。
http://api.mycompany.com/companycatalogue/GetItems?itemID=4
私はLINQをエンティティに使用してOdataサービスを消費する方法を理解していますが、サービスを消費する方法のまともな説明が見つかりません オペレーション 上記のC#のように。 Visual Studioソリューションでサービスに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
}
ポインターはありますか?
解決
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();
}
他のヒント
これはあなたにとって助けかもしれません。このサンプルコードは、WFCデータサービスでサービス操作を消費するために使用されます。このサービス操作(getRowCount)は、整数(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();
httpwebrequestを使用してみましたか?
所属していません StackOverflow