2014-05-11 52 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

另一个端点应该是多对一的,而不是一对多的。