我有一个Holiday
表和一个User
表。
Holiday
表包含RequesterID
和AuthorisedByID
列,这两列都链接到User
表的主键。
这是我的Holiday
型号:
public class Holiday
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid HolidayId { get; set; }
[ForeignKey("UserId")]
public virtual User User { get; set; }
public Guid RequesterId { get; set; }
public Guid? AuthorisedById { get; set; }
}
我无法将AuthorisedByID
声明为User表中的外键,就像我认为我使用RequesterId
列一样。
我想知道你是否可以给我一些如何解决的提示。
感谢。
答案 0 :(得分:9)
代码优先无法单独匹配两个类中的属性。
要解决这些问题,可以使用InverseProperty批注指定属性的对齐方式。
[ForeignKey("RequesterUser")]
public Guid RequesterId { get; set; }
[ForeignKey("AuthorisedUser")]
public Guid AuthorisedById { get; set; }
[InverseProperty("RequesterHoliday")]
public virtual User RequesterUser{ get; set; }
[InverseProperty("AuthorisedHoliday")]
public virtual User AuthorisedUser{ get; set; }
public List<Holiday> RequesterHoliday { get; set; }
public List<Holiday> AuthorisedHoliday{ get; set; }