多重关系导航属性为空EF

时间:2018-12-18 14:29:29

标签: c# entity-framework class entity-framework-6

我有多对多关系,并且我必须重用此关系中的一个实体来创建新的一对多关系。

我做到了,但是发生了一些奇怪的事情,我展示了我的班级定义以便能够解释问题

public partial class Transformador
{
    [Key]
    public string UniqueCode { get; set; }
    public virtual ICollection<Refrigeracion_x_Trafo> Refrigeracion { get; set; }

    public virtual ICollection<Datos_Garantizados> Datos_Garantizados { get; set; }
    //more stuff
}

public partial class Modos_Refrigeracion
{
    [Key]
    public int Id { get; set; }
    public virtual ICollection<Refrigeracion_x_Trafo> Refrigeracion_x_Trafo { get; set; }                
    public virtual ICollection<Datos_Garantizados> DatosGarantizados { get; set; }    
}

public partial class Refrigeracion_x_Trafo
{
    [Key]
    [Column(Order = 0)]
    public string UniqueCode { get; set; }

    [Key]
    [Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id_refrigeracion { get; set; }
}

public partial class Datos_Garantizados
{
    [Key]
    [Column(Order = 0 )]        
    public string UniqueCode { get; set; }

    [Key]
    [Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Version { get; set; }

    [ForeignKey(nameof(IdRefrigeracion))]
    public Modos_Refrigeracion TipoDeRefrigeracion { get; set; }
    public int? IdRefrigeracion { get; set; }
}

问题是,当我得到TransformadorDatos_Garantizados中的一个ICollection时,Modos_Refrigeracion对象为null。

这里很奇怪的是,如果IdRefrigeration(在Datos_Garantizados之内)与表Refrigeracion_X_Trafo中的记录之一匹配,它将正常工作!

关系应该是这样的:

1 Transformador有许多Modos_Refrigeracion和许多Datos_Garantizados 许多Modos_Refrigeracion有许多Transformador和许多Datos_Garantizados 1个Datos_Garantizados具有1 Transformador和1个Modos_Refrigeracion

我该如何解决?

谢谢!

编辑 IdRefrigeracion属性始终具有正确的值,问题在于Modos_Refrigeracion对象为空

0 个答案:

没有答案