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
Mischiare codice server side e client side in una query LINQ con Entity Framework
Integrare OpenAI tramite Aspire
Arricchire l'interfaccia di .NET Aspire
Escludere alcuni file da GitHub Copilot
Utilizzare noopener e noreferrer nei link HTML
Creare una file based app con C#
Utilizzare AbortController per cancellare operazioni asincrone in JavaScript
Evitare la compressione degli artefatti in un workflow di GitHub
Integrare OpenTelemetry direttamente in Azure Monitor
Effettuare un clone parziale di un repository di GitHub
Response streaming con Blazor e .NET 10
Dallo sviluppo locale ad Azure con .NET Aspire


