有没有办法在ClassA.BId
下面映射到ClassB.BetaId
?
BetaId
中的ClassB
不是主键。因此,以下列方式的映射最终会在“ ForeignKeyAttribute无效”异常中结束。请注意,这两个类中没有外键关系。出于某种原因,我不得将ClassA.BId
映射到ClassB.Id
,因为这两个字段不相关,但我需要自定义地图ClassA.BId
到ClassB.BetaId
,因为这两个字段是相关的。但是,Id
中的ClassB
必须保留为主键。
注意:我正在使用Entity Framework 6
[Table("A")]
public class ClassA{
[Key]
public int Id { get; set; }
public int BId { get; set; }
[ForeignKey("BId")]
public virtual B B { get; set; }
}
[Table("B")]
public class ClassB{
[Key]
public int Id { get; set; }
public int BetaId { get; set; }
}
答案 0 :(得分:1)
如果B.BetaID是唯一的,您可以将其声明为Key。否则,EF Core支持引用备用密钥的外键属性。见https://docs.microsoft.com/en-us/ef/core/modeling/alternate-keys