代码之家  ›  专栏  ›  技术社区  ›  Zac

C#的ODATA消费服务操作ASP.NET4.0条

  •  1
  • Zac  · 技术社区  · 14 年前

    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
    }
    

    有什么线索吗?

    3 回复  |  直到 14 年前
        1
  •  3
  •   Zac    12 年前

    好的,得到答案:

    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
  •  1
  •   Laksh    12 年前

    这也许对你有帮助。 此示例代码用于使用WFC数据服务中的服务操作。此服务操作(GetRowCount)返回整数(int)类型值。输入段名为“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();
    
        3
  •  0
  •   Darrel Miller    14 年前

    你试过使用HttpWebRequest吗?