Utilizzando WCF RIA Services, in alcuni casi, possiamo avere la necessità di utilizzare delle stored procedure per il recupero dei dati che, non sempre, possono restituire una collezione di entità già mappate.
In questi casi la stored procedure, sotto forma di metodo, restituisce una collezione di oggetti ComplexType. Durante lo sviluppo potrebbe rendersi necessario trattare sia l'entità che il ComplexType nel medesimo modo, non curandosi effettivamente su cosa stiamo lavorando. Tutto questo è realizzabile semplicemente facendo implementare sia al ComplexType che all'entità una interfaccia che chiameremo IAccessor.
public interface IAccessor { string Name{get;} string Description{get;} }
Dobbiamo solo prestare attenzione a collocare questa interfaccia in un file con il suffisso shared, in modo che la stessa possa essere "proiettata" sul client senza nessuna modifica.
Proseguiamo implementando l'interfaccia sia nell'entità che sul ComplexType, sfruttando la dichiarazione partial dell'entità generate da WCF RIA Services; l'implementazione va fatta in un nuovo file che deve sempre avere il suffisso shared.
public partial class Entity: IAccessor { public string Name { get { return this.Name; } } public string Description { get { return thisDescription} } } public partial class ComplexType: IAccessor { public string Name { get { return this.ComplexName; } } public string Description { get { return this.ComplexDescription;} } }
A questo punto potremo usare indistintamente l'interfaccia IAccessor per accedere all'entità o al ComplexType, sia lato client che server.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Testare l'invio dei messaggi con Event Hubs Data Explorer
Come migrare da una form non tipizzata a una form tipizzata in Angular
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Referenziare un @layer più alto in CSS
Evitare la script injection nelle GitHub Actions
Gestire il colore CSS con HWB
Eseguire i worklow di GitHub su runner potenziati
Load test di ASP.NET Core con k6
Generare token per autenicarsi sulle API di GitHub
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Estrarre dati randomici da una lista di oggetti in C#
I più letti di oggi
- Proteggere le risorse Azure con private link e private endpoints
- Referenziare un @layer più alto in CSS
- Centrare elementi in HTML tramite CSS
- Gestire i dati con Azure Cosmos DB Data Explorer
- Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
- Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API