如何在实体框架中的N到N联结表中添加其他字段

时间:2014-07-01 17:48:49

标签: c# entity-framework entity-framework-6

我有两个表Group和'用户'。用户可以加入多个群组。所以我创建了这两个对象并以流畅的api加入它们:

public class Group
    {...
public virtual ICollection<ApplicationUser> Members { get; set; }

public class ApplicationUser
    {...
public virtual ICollection<Group> MemberInGroups { get; set; }

我用流利的api绘制了它们:

modelBuilder.Entity<Group>()
                        .HasMany(c => c.Members)
                        .WithMany(x => x.MemberInGroups)
                        .Map(a =>
                        {
                            a.ToTable("UsersInGroups");
                            a.MapLeftKey("GroupId");
                            a.MapRightKey("UserId");
                        });

我如何在联结表中再添加一列如JoinDate

1 个答案:

答案 0 :(得分:1)

EF并不支持它。如果您需要具有额外列的联结表,则该表必须映射到实体本身,并且您将失去直接的多对多导航。

您将拥有两个多对一和一对多的关系,并且您需要在两个之间进行两次跳转,即从enttity到联结表实体(这将是它的孩子),并从联结表实体到关系另一方的相关实体的集合。

见SO Q&amp; A:

Many to many mapping with extra fields in Fluent API