非常规外键字段在EF6中映射为NULL

本文关键字:映射 NULL EF6 字段 非常规 | 更新日期: 2023-09-27 18:00:09

我正在使用EF6。我有两个型号PowerLine和PowerSource。PowerSource有一个指向PowerLine的外键列。问题是PowerLine对象正在填充PowerSource列表,但PowerSource的SourcePowerLine导航属性始终为NULL。我的型号如下:

public class PowerLine
{
    [Key]
    public int ID { get; set; }                                    
    public virtual ICollection<PowerSource> PowerSources { get; set; }    
}
public class PowerSource
{
    [Key]
    public int ID { get; set; }    
    public int SourcePowerLineID {get;set;}
    [ForeignKey("SourcePowerLineID")]        
    public virtual PowerLine SourcePowerLine { get; set; }                                                         
 }

我也尝试了Column(Order)属性来设置正确的顺序,我也尝试使用Fluent API,如下所示:

        modelBuilder.Entity<PowerSource>()
                    .HasRequired(c => c.SourcePowerLine )
                    .WithMany(b => b.PowerSources)
                    .HasForeignKey(c => c.SourcePowerLineID);

非常规外键字段在EF6中映射为NULL

您的[ForeingKey()]属性并没有真正指向任何地方,请尝试:

[ForeignKey("PowerLine")]
public int SourcePowerLineID { get; set; }