Asp.net mvc 3 在fluent nhibernate中使用filterdefinition时出现名为exception的重复筛选器定义

Asp.net mvc 3 在fluent nhibernate中使用filterdefinition时出现名为exception的重复筛选器定义,asp.net-mvc-3,fluent-nhibernate,Asp.net Mvc 3,Fluent Nhibernate,我是fluent hibernate新手,在尝试创建过滤器时遇到异常 我找到了这个 这解释了如何创建一个流畅的过滤器,直到我尝试运行我的应用程序。我得到一个例外(见下文)。我的代码与上面的链接相同。下面是导致异常的代码。如果我只为映射(例如HotelMap)添加1个程序集,那么问题就会消失,当我添加2个或更多程序集时,就会出现异常 任何想法都会被感激的 private static ISessionFactory BuildSessionFactory() { var c

我是fluent hibernate新手,在尝试创建过滤器时遇到异常

我找到了这个

这解释了如何创建一个流畅的过滤器,直到我尝试运行我的应用程序。我得到一个例外(见下文)。我的代码与上面的链接相同。下面是导致异常的代码。如果我只为映射(例如HotelMap)添加1个程序集,那么问题就会消失,当我添加2个或更多程序集时,就会出现异常

任何想法都会被感激的

private static ISessionFactory BuildSessionFactory()
    {
        var connectionString = DatabaseConnectionStringsFactory.GetConnectionString(DatabaseConnectionStringsFactory.DEFAULT);
        try
        {
            var session = Fluently.Configure()
                .Database(
                    MsSqlConfiguration.MsSql2008.
                        ConnectionString(connectionString).
                        AdoNetBatchSize(50)
                )
                .Mappings(m => m.FluentMappings.Add(typeof(CultureFilter.PonyConditionFilter)))
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<AgentMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<HotelMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<RoomMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<SeasonMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<BookingsMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<CustomerMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<PriceMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<GroupRoomsMap>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<PermissionsToBooking>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Address>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Owner>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<BookingCancelledBy>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<RelatedBookings>())
                .ExposeConfiguration(c =>c.SetProperty("current_session_context_class", "thread_static"))
                .BuildSessionFactory();

            session.OpenSession().EnableFilter("PonyConditionFilter").SetParameter("condition", false);
            return session;

        }
        catch (Exception e)
        {
            throw e;
        }
    }

如果所有映射都位于同一个程序集中,则只需为每个程序集添加一个AddFromAssembly行

Fluent NHibernate将扫描整个程序集以查找映射并添加它们

请尝试以下方法:

var session = Fluently.Configure()
                .Database(
                    MsSqlConfiguration.MsSql2008.
                        ConnectionString(connectionString).
                        AdoNetBatchSize(50)
                )
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<AgentMap>())
                .ExposeConfiguration(c =>c.SetProperty("current_session_context_class", "thread_static"))
                .BuildSessionFactory();
var session=fluntly.Configure()
.数据库(
MsSqlConfiguration.MsSql2008。
ConnectionString(ConnectionString)。
ADONbatchSize(50)
)
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.ExposeConfiguration(c=>c.SetProperty(“当前会话上下文类”、“线程静态”))
.BuildSessionFactory();
var session = Fluently.Configure()
                .Database(
                    MsSqlConfiguration.MsSql2008.
                        ConnectionString(connectionString).
                        AdoNetBatchSize(50)
                )
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<AgentMap>())
                .ExposeConfiguration(c =>c.SetProperty("current_session_context_class", "thread_static"))
                .BuildSessionFactory();