2012-02-27 12 views

Respuesta

15

Después de algunas investigaciones adicionales, creo que encontré una respuesta. Básicamente, debe desplegar en ObjectContext, el contexto EF original para el cual DbContext es un contenedor, y usar la información de MetadataWorkspace a continuación.

Agregue otra respuesta si hay una manera directa de obtener esto directamente del DbContext, ya que sería más intuitivo y preferible si hubiera uno.

using System.Data.Metadata.Edm; 
using System.Data.Objects; 
using System.Data.Entity.Infrastructure; 

... 

using (dbcontext context = new TestContext()) 
{ 
    ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext; 
    MetadataWorkspace workspace = objContext.MetadataWorkspace; 
    IEnumerable<EntityType> tables = workspace.GetItems<EntityType>(DataSpace.SSpace); 

} 

Gracias, Will

+0

me di cuenta de cómo hacer referencia a las entidades en el DbContext pero todavía estoy seguro de cómo conseguir que la referencia en la plantilla T4 que estoy usando para la generación de código. ¿Algunas ideas? Probablemente publicaré otra pregunta sobre ese tema. – WillC

+0

¿Has encontrado la solución T4? –

Cuestiones relacionadas