C# 忽略模拟的子对象

C# 忽略模拟的子对象,c#,nhibernate,C#,Nhibernate,我想知道是否有一种方法可以忽略NHibernate中确实存在级联映射的子对象。考虑到以下情况:超级管理员被允许查看所有事件,即使他没有在所有事件中登记。这是通过表示超级管理员和事件之间关系的mock(或fake)对象实现的,这些对象在持久性级别上不存在 唯一的问题是,如果超级管理员被保存,NHibernate会将这些模拟对象创建为新条目。有没有办法注册这些子对象以使NHibernate忽略它们 任何TIPP的Thx sl3dg3您可以这样设计: public class User { p

我想知道是否有一种方法可以忽略NHibernate中确实存在级联映射的子对象。考虑到以下情况:超级管理员被允许查看所有事件,即使他没有在所有事件中登记。这是通过表示超级管理员和事件之间关系的mock(或fake)对象实现的,这些对象在持久性级别上不存在

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

任何TIPP的Thx
sl3dg3

您可以这样设计:

public class User
{
    private IList<Event> _events;
    public IList<Event> Events
    {
        get { return IsSuperAdmin ? Event.All : _events; }
    }
}
公共类用户
{
私人IList_活动;
公共活动
{
获取{返回IsSuperAdmin?事件。所有:_events;}
}
}

然后,您的映射只能映射到字段事件,而不能映射到公共属性。

您可以这样做:

public class User
{
    private IList<Event> _events;
    public IList<Event> Events
    {
        get { return IsSuperAdmin ? Event.All : _events; }
    }
}
公共类用户
{
私人IList_活动;
公共活动
{
获取{返回IsSuperAdmin?事件。所有:_events;}
}
}

然后,您的映射只能映射到字段事件,而不能映射到公共属性。

是的,似乎没有办法告诉hibernate这样的事情。我现在的做法与你的建议类似。是的,似乎没有办法告诉hibernate类似的事情。我现在的做法与你的建议相似。