刚开始使用 EF 并且可以这么说已经跌倒了第一道障碍。
我有两个课程:
public class Hero
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class League
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<Hero> Team { get; set; }
}
现在我的代码中没有任何内容可以阻止我拥有一个属于两个联盟的英雄:
League A = new League() { Name = "A Team" };
League B = new League() { Name = "B Team" };
Hero me = new Hero() { Name = "Richard" };
A.Team = new List<Hero>();
A.Team.Add(me);
B.Team = new List<Hero>();
B.Team.Add(me);
但是,当我从包管理器运行“更新数据库”时,它会使用英雄上的外键生成我的数据库 - 这实际上意味着我的英雄只能是 1 个联盟的成员:
PSEUDO:
TABLE HERO == ID,NAME,LEAGUE_ID
TABLE LEAGUE = NAME,ID
这有效地阻止了我的课程正常工作,因为英雄现在只能成为 1 个联盟的成员......我怎样才能让 EF 接受这个?我想它需要的是多对多关系,但它不是建立一个..