Molto spesso abbiamo la necessità di scoprire quale sia il tipo base di una entity. Il metodo più semplice è quello di sfruttare la reflection. Lo svantaggio derivante dall'uso della reflection è rappresentato dalla sua estrema lentezza. Per velocizzare le performance possiamo sfruttare i metadati di Entity Framework in quanto la entity è mappata nell'EDM.
In questo snippet vediamo come ottenere la classe base Persona di una entity Manager.
using (var ctx = new MyContext()) { var item = ctx.MetadataWorkspace.GetItem<EntityType>( "Model.Manager", DataSpace.OSpace); //baseType contiene il tipo Persona var baseType = item.BaseType; }
Accedere ai metadati velocizza notevolmente performance rispetto all'uso della reflection quindi ne consigliamo fortemente l'uso.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire la cancellazione di una richiesta in streaming da Blazor
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Creare un webhook in Azure DevOps
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Gestione dell'annidamento delle regole dei layer in CSS
Migrare una service connection a workload identity federation in Azure DevOps
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Implementare l'infinite scroll con QuickGrid in Blazor Server
Generare la software bill of material (SBOM) in GitHub