¿Cómo puedo leer metadatos EF DbContext mediante programación?

Tengo una aplicación que utiliza EF-CodeFirst 5 (dll ver 4.4.0.0, en .net 4.0).

Necesito poder leer los metadatos de la entidad, para que pueda, para un tipo de entrada dado, obtener la siguiente información:

qué propiedades son relaciones de uno a muchos (entidades referenciadas)qué propiedades son relaciones de muchos-uno (colecciones de entidades que hacen referencia a una actual)también agradable pero no absolutamente necesario: qué propiedades son muchas, muchas relaciones (colecciones de relaciones)

Puedo obtener esta información escribiendo bucles foreach en listas de propiedades y luego "reconociéndolos" confiando en que todas las referencias son virtuales, pero creo que no es lo "correcto". Yo sé esoEdmxWriter puede proporcionar esa información en formato xml, pero lo hace accediendo a InternalContext que no es de acceso público y quiero obtener listas / arrays fuertemente tipificados directamente, sin usar ese xml. ¿Qué API debo usar (si hay una para esto, parece que no puedo encontrarla)?

Respuestas a la pregunta(1)

Su respuesta a la pregunta