使用从客户端库调用的参数的ADO.Net Services服务操作失败

时间:2009-04-02 00:35:20

标签: wcf-data-services

控制台应用

var result = dataService.CreateQuery<Customers>("GetCustomerByLastName").
    AddQueryOption("lastname", "S");

服务

    [WebGet]
    public IQueryable<Customers> GetCustomerByLastName( string lastname )
    {
       return   from c in this.CurrentDataSource.Customers
                where c.LastName.StartsWith( lastname )
                select c ; 
    }                  

结果为:(相对于http://localhost:1478/Apress.Data.Services.CustomerService.Host/

RequestUri:CustomerDataService.svc / GetCustomerByLastName()?lastname = S

并因此失败,因为uri中的括号,这是不期望的。

CustomerDataService.svc / GetCustomerByLastName?lastname ='S'

在浏览器中运行。

VS 2008 SP1。

2 个答案:

答案 0 :(得分:2)

事实证明问题与括号无关,我缺少字符串文字单引号

应该是

AddQueryOption("lastname", "'S'");

GetCustomerByLastName()?lastname='S'

GetCustomerByLastName?lastname='S'

对ADO.Net数据服务都是正确的。

答案 1 :(得分:0)

你可能已经尝试过了,但是没有AddQueryOption会发生什么?我知道它不会传递参数,但这会改变括号的问题吗?此外,如果您这样做并将服务更改为不需要参数会发生什么?关于括号的相同问题。

最后,如果这是一个错误,请在Connect上报告。然后在此处发布URL,以便我们可以对我们认为问题的重要程度进行投票。请务必先搜索,看看是否有其他人报告过。