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

本文关键字:映射 一对多 关系 代码 何使用 | 更新日期: 2023-09-27 17:59:52

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

有人能确认这个映射是正确的吗?

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

  • 当你像你的例子中那样有一个反向引用时,onetomany映射应该设置Inverse()
  • 最好在两侧显式指定keycolumn,以避免创建两个不同的外键
  • 考虑将级联设置为"无"以外的值,以启用级联保存/更新/删除
  • 如果警报无法独立运行(没有帐户),请添加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"));

注:

  • 编译器可以推断通用参数
  • 这是我的想法,语法可能会有所不同