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
Creare una libreria CSS universale - Rotazione degli elementi
Eliminare record doppi in Sql Server
Recuperare le subissue e il loro stato di completamento in GitHub
Eseguire script pre e post esecuzione di un workflow di GitHub
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Testare l'invio dei messaggi con Event Hubs Data Explorer
Ridurre il reflow ottimizzando il CSS
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Introduzione ai web component HTML
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL