默认情况下启用Nhibernate过滤器

时间:2009-03-05 11:45:04

标签: c# nhibernate

是否有办法确保默认启用过滤器(<filter-def>),而不是每次都必须调用session.EnableFilter("filter_name")

1 个答案:

答案 0 :(得分:4)

我知道这可能无法完全解决您的问题,但如果您通过IOC容器连接对象,或者您有一个创建会话的点,则可以执行此操作。

我如何处理它是在激活ISession我默认切换过滤器(使用Autofac):

        builder.RegisterAdapter<ISessionFactory, ISession>(factory => factory.OpenSession())
            .InstancePerHttpRequest()
            .OnActivated(activatedArgs =>
                         {
                             var session = activatedArgs.Instance;
                             session.EnableFilter(MyCustomFilter.Name);
                             session.BeginTransaction();
                         });