Je tente de créer un service de données ADO.NET avec beaucoup d'entités et quelques opérations de service. D'un côté, j'ai créé une application Web ASP.NET, dans laquelle se trouvent un modèle de données d'entité ADO.NET et un service de données ADO.NET. De l'autre côté j'ai créé une deuxième application Web ASP.NET qui a une référence de service au service de données.Utilisation des opérations de service d'un service de données ADO.NET à partir d'un client .NET
Les entités sont à venir à travers très bien, je peux utiliser LINQ pour récupérer les données que je veux:
TestEntities entities = new TestEntities(
new Uri("http://localhost/service/service.svc"));
var query = from customer in entities.Customers
where customer.ID == 1234
select customer;
query.ToList();
Cela fonctionne. Cependant, récupérer des informations via Service Operations me échappe complètement. code côté Data Service:
public static void InitializeService(IDataServiceConfiguration config) {
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
}
[WebInvoke]
public IQueryable<Customer> GetSomeCustomers() {
TestEntities entities = new TestEntities();
return from customer in entities.Customers
where customer.ID > 0 && customer.ID < 20
select customer;
}
Quand j'ai ajouté la référence du service à mon projet client, Visual Studio ne capte pas sur toutes les opérations de service. Je sais que je peux y accéder via les URI construites et la méthode BeginExecute de l'objet DataServiceContext ou de l'objet TestEntities (dans ce cas), ou quelque chose comme ça, mais ce n'est pas comme cela que je le veux. Ce que je veux, c'est utiliser LINQ pour parcourir les données renvoyées de l'opération de service. Est-ce possible? Ça devrait l'être, non?
Ok, mais comment voulez-vous invoquer l'opération « OrdersByRegion » du côté client? Devez-vous créer l'URL REST (par exemple http: //server/service.svc/OrdersByRegion? RegionId = 1) à la main? Merci. –
Salut Ciprian, oui, malheureusement, vous le faites. string.format est généralement le meilleur à utiliser. voir mon premier exemple de code il montre comment l'appeler – dmportella
Désolé, j'ai oublié de marquer cela comme la réponse acceptée (je parcourais mes questions), j'étais un peu frustré à ce moment que les URL ne seraient pas construites automatiquement. Merci. – pancake