我有以下课程(只是一个简单的例子)
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集合项目,所以我可以向用户返回他已经读取权限的项目。
任何线索?,建议?,考虑? ... 提前致谢!! :)