MVC3 + NHibernate 3.2: как настроить и отобразить NHibernate с Web.config и Global.asax с Model - первый подход - PullRequest
0 голосов
/ 10 марта 2012

Я начал изучать NHibernate с 2 недель, и я прочитал книгу Руководство для начинающих NHibernate 3. К сожалению, книга написана на версии 3.1, и с версии 3.2 некоторые вещи изменились. Больше нет поддержки замка, ..

Я надеялся найти пример приложения или учебника в 3.2, но нигде не могу найти что-то подобное. На самом деле, большинство статей в блоге о замене Nhibernates 3.2 на FNH.

Начиная с этого дня, сессионный завод и прочее работают без каких-либо ошибок (используя подход сессия на запрос с помощью actionfilter), но я не могу сгенерировать свою базу данных. Я сопоставляю классический способ с файлами .hbm.xml для каждой сущности. Прочитав много сайтов и блогов, я наконец-то сделал эту конфигурацию:

    protected void Application_Start(object sender, EventArgs e)
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);

        var nhConfig = new Configuration().Configure();
        nhConfig.AddAssembly(typeof(Book).Assembly);
        BuildSchema(nhConfig);

        SessionFactory = nhConfig.BuildSessionFactory();
    }

    private static void BuildSchema(Configuration nhConfig)
    {
        new SchemaExport(nhConfig).Execute(false, true, false);
    }

Мой соответствующий код web.config выглядит так:

   <connectionStrings>
    <add name="db" connectionString="Server=.\SQLExpress; Database=NHbTest; Trusted_Connection=SSPI"/>
   </connectionStrings>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        <session-factory>
            <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
            <property name="dialect">NHibernate.Dialect.MsSql2008Dialect,NHibernate</property>
            <property name="connection.connection_string_name">db</property>
            <property name="adonet.batch_size">100</property>
            <property name="current_session_context_class">web</property>
        </session-factory>
   </hibernate-configuration>

Кто-то видит, что я делаю не так? Спасибо заранее.

1 Ответ

0 голосов
/ 10 марта 2012

Я нашел проблему.Я забыл дать файлам .hbm.xml свойство 'встроенный ресурс' вместо 'content' в действии сборки.Какая хромая «ошибка».Испытал все, теперь работает хорошо.

Спасибо за ваши ответы.

...