我正在尝试建立一个必需的:两个实体之间的可选1对1关系,其中两个实体都具有相互引用的导航属性。我只想在Location
对象上有一个外键。 Photo
必须有Location
,但Location
不需要Photo
以下是这两个模型,我没有其他描述关系的Fluent代码。
public class Photo
{
[Column("PhotoID")]
public long ID { get; set; }
[InverseProperty("Photo")]
[Required]
public virtual Location Location { get; set; }
}
public class Location
{
[Column("LocationID")]
public long LocationID { get; set; }
public long? PhotoID { get; set; }
[ForeignKey("ID")]
public virtual Photo Photo{ get; set; }
}
它生成的sql创建一个约束,指向Photo对象上的错误外键。
FOREIGN KEY FK_dbo.Photo_dbo.Location_PhotoID No Action No Action Enabled Is_For_Replication PhotoID
REFERENCES Relationships.dbo.Location (LocationID)
答案 0 :(得分:0)
属性必须高于photoid属性..
public class Location
{
[Column("LocationID")]
public long LocationID { get; set; }
[ForeignKey("ID")]
public long? PhotoID { get; set; }
public virtual Photo Photo{ get; set; }
}