忽略模拟的子对象

时间:2011-04-01 12:13:23

标签: c# nhibernate

我想知道是否有办法忽略NHibernate的子对象,其中存在级联映射。鉴于以下情况:超级管理员被允许查看所有事件,即使他没有被列入所有事件。这是通过模拟(或伪造) - 表示超级管理员和事件之间关系的对象实现的,这些对象在持久性级别上不存在。

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

任何tipps的Thx sl3dg3

1 个答案:

答案 0 :(得分:1)

你可以做这样的设计:

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

然后您的映射只能映射到字段_events而不是公共属性。