C# 来自C ASP.NET 4.0的ODATA消费服务操作

C# 来自C ASP.NET 4.0的ODATA消费服务操作,c#,asp.net,rest,odata,service-operations,C#,Asp.net,Rest,Odata,Service Operations,我通过C ASP.NET应用程序连接到ODATA服务,该应用程序具有以下服务操作: GetItems(int? itemID, double? price) 我可以在我的浏览器中使用它而不会出现问题,例如 http://api.mycompany.com/companycatalogue/GetItems?itemID=4 我了解如何使用LINQ to实体来使用ODATA服务,但找不到一个像样的解释来解释如何使用C中的上述服务操作。我在Visual Studio解决方案中对该服务进行了web

我通过C ASP.NET应用程序连接到ODATA服务,该应用程序具有以下服务操作:

GetItems(int? itemID, double? price)
我可以在我的浏览器中使用它而不会出现问题,例如

http://api.mycompany.com/companycatalogue/GetItems?itemID=4
我了解如何使用LINQ to实体来使用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
}

有任何提示吗?

您尝试过使用HttpWebRequest吗?

您尝试过使用HttpWebRequest吗?

好的,得到了答案:

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();
}
好的,我得到了答案:

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返回整数类型值。输入参数名称是代码

    var q = context.CreateQuery<int>("GetRowCount").AddQueryOption("code", "'" + serviceProvider.Code + "'");
            int RecordCount = context.Execute<int>(new Uri(q.RequestUri.ToString().Replace("GetRowCount()", "GetRowCount"))).FirstOrDefault();
这可能对你有帮助。 此示例代码用于使用WFC数据服务中的服务操作。此服务操作GetRowCount返回整数类型值。输入参数名称是代码

    var q = context.CreateQuery<int>("GetRowCount").AddQueryOption("code", "'" + serviceProvider.Code + "'");
            int RecordCount = context.Execute<int>(new Uri(q.RequestUri.ToString().Replace("GetRowCount()", "GetRowCount"))).FirstOrDefault();

你是说,使用url并解析输出吗?@Zac是的。或者,您可以使用WCF REST初学者工具包中的HTTPClient,它将为您完成所有繁重的工作。甚至反序列化为强类型。你的意思是,使用url并解析输出吗?@Zac是的。或者,您可以使用WCF REST初学者工具包中的HTTPClient,它将为您完成所有繁重的工作。甚至反序列化为强类型。