เด็กและผู้ปกครองของ NHibernate มีชื่อคีย์ต่างกันหรือไม่

ฉันกำลังทำงานกับฐานข้อมูลที่มีอยู่ และไม่สามารถเปลี่ยนสคีมาได้ สมมติว่าเราขายวิดเจ็ต แต่ละลำดับสำหรับวิดเจ็ตมีรายการในตาราง WidgetBase พร้อมด้วยคีย์ชื่อ uid ตอนนี้ พารามิเตอร์เฉพาะที่จำเป็นสำหรับแต่ละวิดเจ็ตตามลำดับจะอยู่ในตารางอื่นที่เรียกว่า WidgetParams WidgetParams มีคอลัมน์ชื่อ TBuild ซึ่งลิงก์ไปยังคอลัมน์ uid ในตาราง WidgetBase

ฉันจะทำการแมปใน nHibernate ได้อย่างไรเมื่อชื่อคีย์แตกต่างกัน


person andrew    schedule 15.09.2011    source แหล่งที่มา
comment
โมเดลวัตถุของคุณมีลักษณะอย่างไร คุณใช้ Fluent NHibernate หรือไม่?   -  person Shane Courtrille    schedule 15.09.2011


คำตอบ (1)


คุณสามารถระบุชื่อของคอลัมน์คีย์นอกได้ทั้งสองด้าน (หากจับคู่แบบสองทิศทาง)

วิดเจ็ต

HasMany<WidgetParams>(x => x.widgetParams)
    .KeyColumn("TBuild")

พารามิเตอร์วิดเจ็ต

References<Widget>(x => x.widget)
    .Column("TBuild")
person dotjoe    schedule 15.09.2011