2011-04-01 45 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