1

控制台应用程序

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'

在浏览器中工作。

与 2008 SP1 相比。

4

2 回答 2

2

原来问题与括号无关,我缺少字符串文字单引号

应该

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

GetCustomerByLastName()?lastname='S'

GetCustomerByLastName?lastname='S'

两者都适用于 ADO.Net 数据服务。

于 2009-04-02T06:40:13.687 回答
0

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

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

于 2009-04-02T01:38:43.707 回答