SQL 服务器外键 window 新创建的 EF 代码优先 table

SQL Server foreign key window issue for newly created EF Code first table

我不知道是否有人遇到过这个问题,或者这只是其他问题。

我使用的是 EF 代码优先架构。

这是我的第一个 class :

public class PerformanceSurchargeGeneralSettings : FullAuditedEntity
{
    public int PerformanceID { get; set; }
    public Performance Performance { get; set; }

    public int SurchargeId { get; set; }
    public Surcharges Surcharge { get; set; }
}

这是第二个 class:

public class Surcharges : FullAuditedEntity
{
    public  string Name { get; set; }

    public ICollection<PerformanceSurchargeGeneralSettings> PerformanceSurchargeGeneralSettings{ get; set; }
}

一切正常,我可以添加迁移,更新我的数据库,但是如果我转到 table 并检查外键引用,我看不到主键 table。请在此处查看此屏幕截图:

我无法在主键 table 的下拉列表中找到新添加的 table 即 Surcharge

如果我为这个table执行SP_help,我可以找到所有的外键,看截图:

我不明白问题到底出在哪里...

H,

如下更改您的类;

[Table("PerformanceSurchargeGeneralSettings")]
public class PerformanceSurchargeGeneralSetting : FullAuditedEntity
{
    [ForeignKey("PerformanceId")]
    public virtual Performance Performance { get; set; }
    public int PerformanceId { get; set; }

    [ForeignKey("SurchargeId")]
    public virtual Surcharge Surcharge { get; set; }
    public int SurchargeId { get; set; }    
}

[Table("Surcharges")]
public class Surcharge : FullAuditedEntity
{
    [MaxLength(128)]
    public string Name { get; set; }

    public virtual ICollection<PerformanceSurchargeGeneralSetting> PerformanceSurchargeGeneralSettings{ get; set; }
}

我的建议

  • 类 使用单数名称。附加费 => 附加费。
  • MaxLength 赋予字符串属性。
  • 所有 ID 字段使用相同的大小写。性能 ID => 性能 ID。 (就像您为 SurchageId 所做的那样)。
  • 添加virtual键当你想用延迟加载加载数据时。