Я начал изучать NHibernate с 2 недель, и я прочитал книгу NHibernate 3 для новичков. К сожалению, книга написана в версии 3.1, и с тех пор некоторые вещи изменились. Нет поддержки замка больше, ..MVC3 + NHibernate 3.2: Как настроить и отобразить NHibernate с помощью Web.config и Global.asax с помощью модели - первый подход
Я надеялся найти пример-приложение или учебник в 3.2, но не могу найти что-то подобное в любом месте. Большинство вещей на самом деле являются блогами о замене Nhibernates 3.2 для FNH.
С сегодняшнего дня sessionfactory и прочее работают без каких-либо ошибок (с использованием подхода с использованием сеанса на запрос с помощью 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>
Кто-то видит, что я делаю неправильно? Thx заранее.
Прежде чем использовать NH 3.2, я настоятельно рекомендую изучить Fluent NHibernate. В настоящее время он официально выпущен только с поддержкой NH 3.1, но это лучший опыт. –
3.2 не поддерживает FNH из-за его внутреннего кода. Было бы глупо работать со старой версией Nhibernate, если есть более новая, не так ли? И, конечно же, я бы предпочел сделать это с помощью XML-сопоставления в файлах .hbm.xml из-за причин диссертации. – Gigi2m02
FNH поддерживает 3.2 неофициально. Официальная поддержка .. придет. И, честно говоря, я сомневаюсь, что когда-нибудь прикоснусь к NH, если не смогу использовать FNH, потому что это делает такое огромное различие в удобстве использования. Тем не менее, если у вас есть причина тезиса использовать файлы .hbm.xml. Надеюсь, ваш тезис о том, как crappy xml является языком конфигурации? ;) –