控制台应用
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。
答案 0 :(得分:2)
事实证明问题与括号无关,我缺少字符串文字单引号
应该是
AddQueryOption("lastname", "'S'");
但
GetCustomerByLastName()?lastname='S'
和
GetCustomerByLastName?lastname='S'
对ADO.Net数据服务都是正确的。
答案 1 :(得分:0)
你可能已经尝试过了,但是没有AddQueryOption会发生什么?我知道它不会传递参数,但这会改变括号的问题吗?此外,如果您这样做并将服务更改为不需要参数会发生什么?关于括号的相同问题。
最后,如果这是一个错误,请在Connect上报告。然后在此处发布URL,以便我们可以对我们认为问题的重要程度进行投票。请务必先搜索,看看是否有其他人报告过。