如何使用C#代码映射映射一对多关系?

时间:2013-02-18 21:18:56

标签: c# nhibernate

Account.cs

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);

有人可以确认此映射是否正确?

1 个答案:

答案 0 :(得分:1)

  • 如果您的示例中有反向引用,则onetomany映射应该设置Inverse()
  • 最好明确指定双方的键列,以避免创建2个不同的外键
  • 考虑将级联设置为none以外的其他内容以启用级联保存/更新/删除
  • 如果警报不能独立(没有帐户)添加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"));

注意:

  • 编译器可以推测泛型参数
  • 这是我的头脑,语法可能不同