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
Eseguire una GroupBy per entity in Entity Framework
Creare alias per tipi generici e tuple in C#
Sfruttare al massimo i topic space di Event Grid MQTT
Le novità di Angular: i miglioramenti alla CLI
Usare lo spread operator con i collection initializer in C#
Eseguire le GitHub Actions offline
Migrare una service connection a workload identity federation in Azure DevOps
Semplificare il deployment di siti statici con Azure Static Web App
Verificare la provenienza di un commit tramite le GitHub Actions
Utilizzare Tailwind CSS all'interno di React: primi componenti
Evitare il flickering dei componenti nel prerender di Blazor 8
Code scanning e advanced security con Azure DevOps