我有一個以下的數據庫方案設置,我不能真正改變。流利的NHibernate映射:一對一(或沒有)
User
----
Id (primary key)
[Some simple properties...]
UserAdditionalData
------------------
Id (primary key)
[Some simple properties...]
USERID (foreign key to User)
很明顯的是,User
表並沒有真正有它是否鏈接到UserAdditionalData
記錄的任何記憶,所以我不認爲我可以在這裏稱這是一個真正的一個一對一映射因爲他們也不會分享互斥的PK。
但是,實際上,我希望能夠在User
對象上工作,例如檢查它是否有UserAdditionalData
記錄,如果是,請訪問其屬性。
我建立了我的BDO這樣:
public class User
{
[Some simple properties...]
public virtual UserAdditionalData UserAdditionalData { get; set; }
}
public class UserAdditionalData
{
[Some simple properties...]
public virtual User User { get; set; } /* I have this here,
but I don't really ever
have to access it in this
direction */
}
我建立了我的映射,例如:
public UserMapping()
{
Table("USER");
[Some simple properties...]
HasOne(x => x.UserAdditionalData).Cascade.None();
}
public UserExtraMapping()
{
Table("USER_ADDITIONAL_DATA");
[Some simple properties...]
References(x => x.User, "USERID").Unique();
}
這一切編譯,但是我看到我的UserExtra對象(當通過User對象訪問時)始終爲空。 我已經嘗試了很多不同的方式去了解它,閱讀了很多關於實現這個作爲一對多。但是,我仍然無法使其工作。
任何幫助將非常感激。
謝謝!
[小UPDATE]:我只需要查詢數據庫,而不是保存到它,如果這是相關的任何方式。
'HasOne'和'References'設置你爲我工作。SQL NHibernate生成的外觀是否正確? – 2014-09-01 20:34:29