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
Creare una libreria CSS universale: Cards
Supportare la sessione affinity di Azure App Service con Application Gateway
Gestire progetti .NET + React in .NET Aspire
Integrare un servizio esterno con .NET Aspire
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Evitare memory leaks nelle closure JavaScript
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Scrivere selettori CSS più semplici ed efficienti con :is()
Utilizzare Intersect e Except per filtrare set di dati in TSql
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Gestire i dati con Azure Cosmos DB Data Explorer
I più letti di oggi
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- Gestione ciclo di vita in .NET Aspire
- Assengare l'ID ai controlli in maniera automatica
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!