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<T>) e decorato con l'attributo WebGet (System.ServiceModel.Web.WebGetAttribute).
Le uniche limitazioni per il metodo sono sul tipo restituito che può essere un IEnumerable<T>, void, un tipo definito dal servizio, un tipo primitivo o un IQueryable<T>, al fine di supportare ulteriori operazioni di sorting, filtering, paging, ecc..
[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.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Impedire il remote linking di immagini tramite URL Rewrite Module di IIS 7
- Community Champion Basta!Italia 2009 - Roma
- Microsoft Security Bulletin MS02-068
- IIS guadagna terreno
- Disponibile la versione 2.1 di IISLockDown
- Mischiare codice server side e client side in una query LINQ con Entity Framework
- Nascondere i contenuti con effetto Fade nella Universal Windows Platform


