2013-02-18 249 views
1

Account.cs如何使用C#代碼映射映射一對多關係?

public IList<Alert> Alerts { get; set; } 

Alert.cs

public Account Account { get; set; } 

Bag<Alert>(x => x.Alerts, c => { }, r => { r.OneToMany(); }); 

並對警報側

AlertMap.cs

ManyToOne(x => x.Account); 

有人可以證實,這個映射是正確的?

+0

您使用的可能會有所不同'Fluent'。如果不是,您使用哪個庫進行映射? – rae1 2013-02-19 04:47:42

+1

不使用流利。按代碼映射。 – user1765862 2013-02-19 06:46:31

回答

1
  • 當你有一個反向引用,如您的示例一對多映射應該有Inverse()設置
  • 最好是指定兩側keycolumn明確,以避免產生2個不同的外鍵
  • 考慮設置級聯到總比沒有其他的東西,使級聯保存/更新/刪除
  • 如果警報不能自行站立(沒有一個帳戶)添加Cascade.DeleteOrphan

Bag(x => x.Alerts, c => { c.Inverse(); c.Key("account_id"); }, r => { r.OneToMany();});

ManyToOne(x => x.Account, c => c.Column("account_id"));

注:

  • 通用參數可以通過編譯器
  • 這是我的頭頂來infered,語法