两个表Entity Framework之间的几个一对多的关系6

By simon at 2018-02-07 • 0人收藏 • 52人看过

我有访客实体

public class Guest
    {
        public Guid Id { get; set; }
        public string Name { get; set; }
        public string Surname { get; set; }
    }
我需要一个描述两个客人之间relationshipType的实体。我走了 同
public class RelationshipGuestLink
    {
        public Guid Id { get; set; }
        public Relationship Relationship { get; set; }
        public Guid RelationshipId { get; set; }
        public Guest FirstGuest { get; set; }
        public Guid FirstGuestId { get; set; }
        public Guest SecondGuest { get; set; }
        public Guid SecondGuestId { get; set; }
        public ProfileRelationshipType RelationshipType { get; set; }
        public Guid RelationshipTypeId { get; set; }
    }
并使用fluentApi映射它们
public RelationshipGuestLinkConfiguration()
    {
        ToTable("MyTable");
        HasKey(x => x.Id);
        HasOptional(x => x.Relationship).WithMany().HasForeignKey(x => x.RelationshipId);
        HasOptional(x => x.FirstGuest).WithMany().HasForeignKey(x => x.FirstGuestId);
        HasOptional(x => x.SecondGuest).WithMany().HasForeignKey(x => x.SecondGuestId);
        HasOptional(x => x.RelationshipType).WithMany().HasForeignKey(x => x.RelationshipTypeId);
    }
问题是,我不知道如何处理WithMany()部分。我一定要吗 创建两个9Guest类中的999999999269?或者我可以将它们映射到一个 采集? 最后我需要创造一些像家庭一样的东西能够访问 来自任何家庭成员的家庭成员。

1 个回复 | 最后更新于 2018-02-07
2018-02-07   #1

我想我明白你想要完成的事情和一个单一的 ICollection<RelationshipGuestLink>应该足够了。通过这样做,你实现与你的1:M 加入表RelationshipGuestLink。

    public class Guest
    {
        public Guid Id { get; set; }

        public string Name { get; set; }

        public string Surname { get; set; }

        public virtual ICollection<RelationshipGuestLink> RelationshipLinks { get; set; }
    }
所以如果这个例子是一个孩子,父亲和母亲 - 都是实例的 来宾类 - 您将有两个关系链接为孩子(对父亲 和母亲),每个家长一个(relati彼此)。

登录后方可回帖

Loading...