Entity framework 4 在多对多关系中填充链接表

Entity framework 4 在多对多关系中填充链接表,entity-framework-4,many-to-many,entity-framework-ctp5,Entity Framework 4,Many To Many,Entity Framework Ctp5,我正在努力掌握EF4 CTP5。我有两个具有多对多关系的类:Member和MemberGroup。CTP5代码首先生成了两个表Members和MemberGroups,还有第三个名为MemberGroupMembers的表,该表有两列MemberGroupId和MemberId,到目前为止,一切都和我预期的一样。我已经在数据库中植入了一些成员和成员组。问题是我找不到如何将一个或多个MemberGroup分配给一个成员,这将导致在MemberGroupMembers表中为分配给该成员的每个Memb

我正在努力掌握EF4 CTP5。我有两个具有多对多关系的类:Member和MemberGroup。CTP5代码首先生成了两个表Members和MemberGroups,还有第三个名为MemberGroupMembers的表,该表有两列MemberGroupId和MemberId,到目前为止,一切都和我预期的一样。我已经在数据库中植入了一些成员和成员组。问题是我找不到如何将一个或多个MemberGroup分配给一个成员,这将导致在MemberGroupMembers表中为分配给该成员的每个MemberGroup插入一行

    public class Member
{
    public int Id { get; set; }

    public Guid SecureId { get; set; }

    public DateTime JoinedOn { get; set; }

    public virtual ICollection<MemberGroup> MemberGroups { get; set; }
}

public class MemberGroup
{
    public int Id { get; set; }

    public string Name { get; set; }

    public DateTime CreatedOn { get; set; }

    public virtual ICollection<Member> Members { get; set; }
}

public class CTP5testContext : DbContext
{
    public CTP5testContext() : base("CTP5test") { }

    public DbSet<Member> Members { get; set; }

    public DbSet<MemberGroup> MemberGroups { get; set; }
}

public class CTP5testContextInitializer : DropCreateDatabaseIfModelChanges<CTP5testContext>
{
    protected override void Seed(CTP5testContext context)
    {
        new List<Member>
        {
            new Member
            {
                Id = 1,
                SecureId = Guid.NewGuid(),
                JoinedOn = DateTime.Now
            }
            ,
            new Member
            {
                Id = 2,
                SecureId = Guid.NewGuid(),
                JoinedOn = DateTime.Now
            }
        }.ForEach(m => context.Members.Add(m));

        var memberGroup = new MemberGroup()
        {
            Id = 1,
            Name = "MemberGroup 1",
            CreatedOn = DateTime.Now
        };

        context.MemberGroups.Add(memberGroup);

        // How can I assign Member 1 to MemberGroup 1 ?????

        context.SaveChanges();
    }
}
我希望我在这里要做的事情是明确的,希望有人能给我一个如何实现这一目标的例子

问候,,
Erwin

必须使用POCO类中定义的集合。因此,如果要将member1分配给memberGroup,只需调用:

memberGroup.Members.Add(member1);

嗨,拉迪斯拉夫,谢谢你的快速回复。我已在类定义中将ICollection更改为Collection。我在memberGroup.Members.Addmember1上得到一个NullReferenceException@恩斯塔姆:你必须初始化你的集合。选中此项: