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键当你想用延迟加载加载数据时。
我不知道是否有人遇到过这个问题,或者这只是其他问题。
我使用的是 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键当你想用延迟加载加载数据时。