2009-04-02 6 views
1

application Consoleopération de service ADO.Net services avec des paramètres appelés bibliothèque client ne

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

service

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

résultats dans: (par rapport à http://localhost:1478/Apress.Data.Services.CustomerService.Host/)

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

et échoue en tant que res ult, en raison de parenthèses dans l'uri, qui ne sont pas attendus.

CustomerDataService.svc/GetCustomerByLastName? LastName = 'S'

fonctionne dans un navigateur.

VS 2008 SP1.

Répondre

2

Il est avéré que le problème n'a pas été lié à des parenthèses, je manquais des guillemets simples chaîne littérale

devrait être

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

mais

GetCustomerByLastName()?lastname='S' 

et

GetCustomerByLastName?lastname='S' 

à la fois correct pour ADO.Net Data Services.

0

Vous avez probablement déjà essayé, mais que se passe-t-il sans AddQueryOption? Je sais que cela ne passera pas le paramètre, mais cela change-t-il le problème avec des parenthèses? En outre, que se passe-t-il si vous faites cela et changez le service pour ne pas exiger le paramètre? Même question sur les parenthèses. Enfin, si cela s'avère être un bug, veuillez le signaler au Connect. Ensuite, postez l'URL ici pour que nous puissions voter sur l'importance du problème. Assurez-vous de faire une recherche d'abord pour voir si quelqu'un d'autre l'a signalé.

Questions connexes