我在流畅的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应该是另一个,或者是最能描述上述关系的合适模型。
谢谢, 阿什拉夫。
答案 0 :(得分:4)
假设您的Person映射非常标准,您这样做的方式是:
Id(x => x.BusinessEntityId)
.GeneratedBy.Foreign("BusinessEntity");
。
这假设您的Person类有一个名为BusinessEntity的属性,其属性为BusinessEntity。
您还需要将BusinessEntity映射到约束设置为true的Person(假设Person的主键是BusinessEntity的外键引用)。
关键是GeneratedBy.Foreign()表示您的身份是通过指向另一个类的链接生成的。