0
具有映射表结构的遗留数据库,如下所示。我想弄清楚如何流利地映射这种类型的关系。流利的nHibernate映射与三元映射表
有多个父表使用映射表来存储注释。
的父表如下所示:
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();