0
我正试图与EF4 CTP5进行交涉。我有两个具有多对多关系的类:Member和MemberGroup。 CTP5代码首先生成两个表(Member和MemberGroups),还有第三个名为MemberGroupMembers的有两列(MemberGroupId和MemberId)。到目前为止,所有事情都像我期待的那样。我已经与一些会员和会员组一起播种了数据库。问题是我无法找到如何将一个或多个MemberGroups分配给成员,这会导致为该成员分配给的每个MemberGroup在MemberGroupMembers表中插入一行。在多对多的关系中填充链接表
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();
}
}
我希望它是清楚,我想在这里做,并且有人可以给我如何做到这一点的例子。
的问候, 欧文
Hi Ladislav,感谢您的快速响应。我在我的类定义中将ICollection更改为Collection。我在`memberGroup.Members.Add(member1)'上得到一个NullReferenceException;` – enstam 2011-02-17 09:37:31