【问题标题】:ODATA Consume Service Operation from C# ASP.NET 4.0ODATA 从 C# ASP.NET 4.0 使用服务操作
【发布时间】:2012-03-24 03:50:13
【问题描述】:

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

GetItems(int? itemID, double? price)

我可以在浏览器中毫无问题地使用它,例如

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

我了解如何使用 LINQ to Entities 来使用 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
}

任何指针?

【问题讨论】:

    标签: c# asp.net rest odata service-operations


    【解决方案1】:

    好的,得到答案:

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

    【讨论】:

      【解决方案2】:

      这可能对您有所帮助。 此示例代码用于使用 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();
      

      【讨论】:

        【解决方案3】:

        您尝试过使用 HttpWebRequest 吗?

        【讨论】:

        • 你的意思是,使用 url 并解析输出?
        • @Zac 是的。或者,您可以使用 WCF REST Starter Kit 中的 HTTPClient,它将为您完成所有繁重的工作。甚至反序列化为强类型。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        相关资源
        最近更新 更多