我尝试创建复合键EF Core,并在Person表中有1个与表TypeOfPlace的关系和2个与1个关系的关系,它是id。它是应该在其中作为组合键的表:
public class RankingOfFriend : BaseEntity
{
[Required]
public int Mark { get; set; }
[Required]
public System.DateTime DateTimeOfAdding { get; set; }
[Required]
public int TypeOfPlaceId { get; set; }
public TypeOfPlace TypeOfPlace { get; set; }
[Required]
[ForeignKey("Person")]
public int PersonId { get; set; }
public Person Person { get; set; }
[Required]
[ForeignKey("Person1")]
public int FriendId { get; set; }
public Person Person1 { get; set; }
}
是桌子人:
[InverseProperty("Person")]
public ICollection<RankingOfFriend> RankingOfFriends { get; set; }
[InverseProperty("Person1")]
public ICollection<RankingOfFriend> RankingOfFriends1 { get; set; }
public Person()
{
RankingOfFriends = new List<RankingOfFriend>();
RankingOfFriends1 = new List<RankingOfFriend>();
}
我有这个方法:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<RankingOfFriend>().HasKey(table => new { table.PersonId, table.FriendId, table.TypeOfPlaceId });}
我认为使用TypeOfPlace一切都很好,但是通过2种关系我有一些问题
无法确定类型为“ ICollection”的导航属性“ Person.RankingOfFriends1”表示的关系。可以手动配置关系,也可以使用“ [NotMapped]”属性或“ OnModelCreating”中的“ EntityTypeBuilder.Ignore”忽略此属性。