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!
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.
Utilice la palabra clave virtual:
public virtual Unit PreviousUnit { get; set; }
public virtual Unit SubsequentUnit { get; set; }
Código completo:
public class Unit
{
public int UnitID { get; set; }
...
public Nullable<int> PreviousUnitID { get; set; }
[ForeignKey("PreviousUnitID")]
public virtual Unit PreviousUnit { get; set; }
public Nullable<int> SubsequentUnitID { get; set; }
[ForeignKey("SubsequentUnitID")]
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