Definire un metodo custom in ADO.NET Data Services
di Marco Leoncini, in Silverlight 2.0, il 29 gennaio 2009 alle 08:00
Commenti
mi piace (0)
non mi piace (0) ADO.NET Data Services permette di creare un servizio di tipo REST con estrema semplicità, esponendo mediante URI il modello a oggetti di EF.
Se questo non fosse sufficiente, è sempre possibile creare uno o più metodi che prendono il nome di Service Operations.
Il nuovo metodo deve essere dichiarato nel CodeBehind del file svc (la classe che eredita da DataService
Le uniche limitazioni per il metodo sono sul tipo restituito che può essere un IEnumerable
[WebGet] public int GetGalleryCount() { Return 2; }
Definito il metodo è necessario impostarne le policy di accesso, operazione da compiere nel metodo InizializeService, utilizzando il membro SetServiceOperationAccessRule dell'oggetto IDataServiceConfiguration, passato al metodo come argomento:
public static void InitializeService(IDataServiceConfiguration config) { config.SetEntitySetAccessRule("*", EntitySetRights.All); config.SetServiceOperationAccessRule("GetGalleryCount ",ServiceOperationRights.All); }
Per richiamare il metodo in Silverlight, una volta istanziato il nostro servizio, utilizziamo il metodo BeginExecute al quale passiamo un nuovo URI costruito utilizzando il nome del metodo.
MyDataService.BeginExecute<int>(new Uri("GetGalleryCount", UriKind.Relative), (asyncResult) => { QueryOperationResponse<int> _i = _productManager.EndExecute<int>(asyncResult) as QueryOperationResponse<int>; if (_i.Error == null) { _totalProductCount = _i.SingleOrDefault(); //fai altro } }, null);
Eventuali parametri richiesti dal metodo sono passati utilizzando querystring.





