2014-05-11 85 views
0

我有跟隨着域對象:雙向NHibernate的一個一對一的關係

public class Case { 
    public virtual Event {get; set;} 
} 

public class Event { 
    public virtual Case {get;set; } 
} 

我用流利的映射。

目前我使用的是標準的引用映射從容器側:

References(x => x.Event).Unique(); 

但我茫然地在另一邊做什麼。

我現在面臨的主要問題是我想對案例和事件執行搜索,並且能夠分別對相關案例和事件進行排序和過濾。爲了做到這一點,我需要從雙方映射關係對嗎?

我知道我可以在事件端使用HasMany關係,但後來我不得不將該屬性更改爲列表或其他集合,並且我不想那樣做。

但我的問題是,是否有更好的標準方法呢? 定期的1對1關係似乎不符合法案,因爲他們似乎要求您擁有共同的Id。

感謝任何提示或指針!

+0

我會盡可能鼓勵你不要使用'一對一'。我試圖解釋我的*爲什麼*前幾天在這裏http://stackoverflow.com/a/23447340/1679310。我的經驗是,如果某個表引用其他表,則是多對一的。相反的一面是一對多。它需要一些業務處理周圍,我同意,但最終,它與NHibernate合作,爲我們做的更好,我會說... –

+0

是的,這也是我所收集的。但只是想把它扔出去,看看有沒有人有這種問題的好標準解決方案:) – aeliusd

回答

0

另一個端點應該是多對一的,而不是一對多的。