Entity framework que anida tipos complejos

ef-database-first entity-framework entity-framework-6

Pregunta

Tengo un procedimiento almacenado que devuelve varios conjuntos de resultados. Cada uno es un tipo complejo. El primer conjunto de resultados contendría una lista de elementos del mismo tipo complejo que el segundo conjunto de resultados, etc. Estos no se correlacionan limpiamente con entidades específicas. Por ejemplo, mis clases de POCO deberían ser

public partial class Message
{
    public string Subject { get; set; }
    ...
    public List<Recipient> Recipients { get; set; }
}

public partial class Recipient
{
    public string Email { get; set; }
    ...
}

Según la documentación, "La entidad y los tipos complejos ahora se pueden anidar dentro de las clases" para EF 6. Sin embargo, no puedo descubrir cómo crear una LISTA de un tipo complejo dentro de mi primer tipo complejo. Cuando edito mi Importación de función y uso Obtener información de columna, solo devuelve el primer tipo complejo. Cuando intento Crear un nuevo tipo complejo, solo devuelve el primer tipo complejo. Finalmente, he creado todos los tipos complejos que necesito manualmente y he intentado agregar el tipo complejo del destinatario al tipo complejo del mensaje, solo permitirá que se agregue un solo destinatario. ¿Hay algo especial que necesitas hacer para anidar tipos complejos? ¿Hay algún ejemplo por ahí? No pude encontrar nada que tratara esto en CodePlex, pero puede que me esté perdiendo.

¡Gracias de antemano por su ayuda!

Respuesta aceptada

En mi opinión, anidar significa poner una declaración de clase en otra:

public class A {
    public class B { }
}

En versiones anteriores de EF, la clase B no podía asignarse como entidad o tipo complejo, mientras que en EF6 puede ser. Es el único significado de anidar relacionado con esta característica.

Cuando se trata de su pregunta, todavía no puede asignar una lista de tipos complejos. Si desea una lista, necesita usar entidades (tanto como padres como hijos).




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué