我有以下型号:
public class SomeForm
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public IList<FacilityContactInformation> OriginatingFacilities { get; set; }
public IList<FacilityContactInformation> DestinationFacilities { get; set; }
}
public class FacilityContactInformation
{
public FacilityContactInformation()
{
Id = -1;
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[MaxLength(50)]
public string Owner { get; set; }
}
我正在使用自动迁移来生成和重新生成数据库模式。
这会生成错误“外键 'FK_dbo.FacilityContactInformations_dbo.SomeForm_SomeForm_Id '在引用表 'FacilityContactInformations' 中引用了无效列 'SomeForm_Id'。无法创建约束。请参阅以前的错误。
我怀疑根本原因是 EF 尝试为两个列表生成 FK FK_dbo.FacilityContactInformations_dbo.SomeForm_SomeForm_Id
有什么方法可以继续使用自动迁移,但是让它生成一个有效的 FK?看起来 FK 应该包含列表名称并在 FacilityContactInformations 上生成两个属性,或者应该生成一个中间表来加入。