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
Offline first con Blazor e IndexedDB
Caricare immagini a differenti risoluzioni in HTML con srcset
Reagire alle modifiche della configurazione di ASP.NET Core
Creare l'effetto floating label per gli input con Bootstrap 5
Configuration strongly typed anche per singleton con IOptionsMonitor in ASP.NET Core
Utilizzare le Promise in Javascript - seconda parte
Autenticazione basata su certificati con ASP.NET Core
Personalizzare la creazione dell'utenze Azure B2C tramite API connector
Eseguire task temporizzati tramite hosted service in ASP.NET Core
Supporto migliorato agli statement condizionali nelle pipeline di Azure DevOps
Aumentare le prestazioni di Blazor con la compilazione Ahead of Time
Le novità di .NET 6 e C# 10
I più letti di oggi
- Pinnare la propria applicazione nella taskbar con la Universal Windows Platform
- Inviare messaggi al client in real time tramite gli Hub di ASP.NET SignalR
- Un Model Binder personalizzato per ASP.NET MVC per costruire oggetti DbGeography
- Impostare il fuso orario di un cloud service di Microsoft Azure
- Recuperare le proprietà di una classe tramite i metadati con Entity Framework
- Style predefiniti in Silverlight
- Recuperare un repository tramite le REST API di Azure DevOps