剛開始使用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選擇這個呢?我猜它需要的是多對多的關係,但它不是建設一個..
這正確地修正了模型。謝謝 - 我很驚訝,我必須這樣做,但是當我給它多一點思考時,我認爲它是有道理的,否則所有關係在默認情況下都必須是多對多的:S – 2013-02-26 16:40:21
如果它幫助解決您的問題,請標記它已經回答。 – NunoCarmo 2013-02-26 16:46:13