2011-04-01 46 views
1

我不知道是否有一种方法可以忽略NHibernate中存在级联映射的子对象。鉴于以下情况:超级管理员被允许查看所有事件,即使他没有在所有事件中登记。这是通过模仿(或伪造)实现的 - 表示超级管理员和事件之间的关系的对象,这些对象在持久层级上不存在。忽略嘲笑的子对象

唯一的问题是,NHibernate会创建这些模拟对象作为新的条目,如果超级管理员保存。有没有办法以某种方式注册这些子对象,以使NHibernate忽略它们?

THX任何的窍门 sl3dg3

回答

1

你可以做一个设计,像这样:

public class User 
{ 
    private IList<Event> _events; 
    public IList<Event> Events 
    { 
     get { return IsSuperAdmin ? Event.All : _events; } 
    } 
} 

然后您可以映射只映射到外地_events而不是公共财产。

+0

是的,似乎没有办法告诉休眠这样的事情。我现在这样做与您的建议类似。 – sl3dg3 2011-04-04 07:13:48