拥有一个具有如下映射表结构的遗留数据库。我试图弄清楚如何流畅地映射这种关系。
有多个父表使用映射表来存储注释。
父表如下所示:
P1 表
ID iSomething
P2 表
ID iSomethingElse
有一个映射表,它将获取一个父表并将其映射到一个注释表。
映射表
ID i_RecordUniqueID
ID i_NoteID
ID i_RecordID
i_RecordID 列包含一个数值,指示 i_RecordUniqueID 值来自哪个父表。映射表只有这三列,是一个三元主键。
这是笔记表:
笔记表
ID i_NoteID
查找表 P1 注释的查询如下:
Select n.*
from P1 p
inner join Mapping m on p.iSomething = m.i_RecordUniqueID and m.i_RecordID = 1
inner join Note n on m.i_NoteID = n.i_NoteID
查找表 P2 的注释的查询如下:
Select n.*
from P2 p
inner join Mapping m on p.iSomething = m.i_RecordUniqueID and m.i_RecordID = 2
inner join Note n on m.i_NoteID = n.i_NoteID
在我的父表映射文件中,我有一个如下所示的关联。我不知道如何添加 i_RecordID 约束。
HasManyToMany<Note>(x => x.Notes)
.Table("Mapping")
.ParentKeyColumn("i_RecordUniqueID")
.ChildKeyColumn("i_NoteID")
.Cascade.All();