¿Cómo puedo crear múltiples relaciones con la misma tabla en EF7 (Core)?

c# entity-framework-core

Pregunta

Estoy tratando de construir una migración, pero está tropezando con la siguiente clase:

public class Unit
{
    public int UnitID { get; set; }
    ...
    public Nullable<int> PreviousUnitID { get; set; }

    [ForeignKey("PreviousUnitID")]
    public Unit PreviousUnit { get; set; }

    public Nullable<int> SubsequentUnitID { get; set; }

    [ForeignKey("SubsequentUnitID")]
    public Unit SubsequentUnit { get; set; }
}

"La propiedad de navegación '' no se puede agregar al tipo de entidad 'Unidad' porque ya existe una propiedad de navegación con el mismo nombre en el tipo de entidad 'Unidad'.

Supongo que esta navegación un tanto peculiar es la culpable, así que he dejado de lado al resto de la clase. ¿Alguien sabe de alguna manera puedo evitar este problema?

¡Gracias!

Respuesta aceptada

Este es un problema conocido con RC1.

Problema:

Cadena de desarrollo: https://github.com/aspnet/EntityFramework/pull/4239

rowanmiller comentó el 8 de enero.

Eso sería # 4069 que se arregla en nuestras versiones nocturnas y se enviará en RC2.


Respuesta popular

Utilice la palabra clave virtual:

public virtual Unit PreviousUnit { get; set; }
public virtual Unit SubsequentUnit { get; set; }

Código completo:

public virtual Unit PreviousUnit { get; set; }
public virtual Unit SubsequentUnit { get; set; }

Esto también permite la carga perezosa de las Unidades.

edición: quizás esto también podría ayudar: https://github.com/aspnet/EntityFramework/issues/3911




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é