2009-10-20 73 views
2

我在流利的nHibernate中遇到了一對一的關係問題。流利的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和BusinessEntity應該有兩個一類,或者是適當的模型來最好地描述上述關係。

謝謝, Ashraf。

+0

你的模型類是如何設置的? – 2009-10-20 23:52:03

+0

應該有兩個一級的Person和另一個BusinessEntity。或適當的模型。示例 public class Person {public virtual BusinessEntity BusinessEntity {get;組; }公共虛擬字符串描述{get;組; }} – ashraf 2009-10-21 00:06:02

回答

4

意味着你的Person的映射是非常標準的,你這樣做的方式是說:

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

在Person類。

這假定您的Person類具有名爲BusinessEntity的屬性,該屬性的類型爲BusinessEntity。

您還需要將BusinessEntity映射到具有約束設置爲真的人(以說他們的主鍵是對BusinessEntity的外鍵引用)。

關鍵是GeneratedBy.Foreign()表示您的身份是由另一個類的鏈接生成的。

相關問題