流畅的NHibernate一对一的关系?

时间:2009-10-20 23:50:03

标签: fluent-nhibernate nhibernate-mapping

我在流畅的nHibernate中遇到了一对一关系的问题。

我有来自AdventureWorks2008数据库的以下关系表。

BusinessEntity (Table)
    BusinessEntityId Int (PK, Identity)

Person (Table)
   BusinessEntityId int (PK, Reference with BusinessEntity table)
   FullName varchar(255)

BusinessEntity表与Person表之间的关系是一对一的。

如何在Person表中没有像“Id”这样的额外字段流畅地映射?

Person应该有2个Class,BusinessEntity应该是另一个,或者是最能描述上述关系的合适模型。

谢谢, 阿什拉夫。

1 个答案:

答案 0 :(得分:4)

假设您的Person映射非常标准,您这样做的方式是:

Id(x => x.BusinessEntityId)
     .GeneratedBy.Foreign("BusinessEntity");
上的

这假设您的Person类有一个名为BusinessEntity的属性,其属性为BusinessEntity。

您还需要将BusinessEntity映射到约束设置为true的Person(假设Person的主键是BusinessEntity的外键引用)。

关键是GeneratedBy.Foreign()表示您的身份是通过指向另一个类的链接生成的。