Scoprire il tipo base di una entity mappata con Entity Framework

di Stefano Mostarda, in LINQ,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi