NHibernate惰性集合透明后加载过滤

时间:2013-08-05 16:34:07

标签: nhibernate filtering acl lazy-evaluation event-listener

我有以下课程(只是一个简单的例子)

public class A
{
    public virtual string Name { get; set; }
    public virtual B B { get; set; }
    public virtual IList<C> Cs { get; set; }
}

属性B和C都是延迟加载的。

所以我试图拦截B和C的延迟加载,这样我就可以对该对象进行安全检查(即,当用户从DB检索A时,该用户可能无权读取B或所有项目在Cs列表中)。

我设法摆脱了B属性的延迟加载...所以如果不允许用户读取B,则在LoadEventListener的Load(...)方法上返回null,用户只看到null试图访问B

我的问题是我在NH上尝试了每个单独的事件监听器,但是我无法过滤Cs集合项目,所以我可以向用户返回他已经读取权限的项目。

任何线索?,建议?,考虑? ... 提前致谢!! :)

0 个答案:

没有答案