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