Я пытаюсь сгенерировать скрипт обновления из моих моделей и отображений NHibernate, чтобы я мог поместить скрипт обновления в дельта-скрипт и разрешить создание и обновление моей базы данных из nant.
Я могу получить сгенерированный скрипт обновления, используя следующий метод:
private static IList<string> GetUpdateScript(Configuration configuration, string dbConnectionString)
{
var dialect = Dialect.GetDialect(configuration.Properties);
using (var connection = new SqlConnection(dbConnectionString))
{
connection.Open();
return configuration.GenerateSchemaUpdateScript(dialect,
new DatabaseMetadata(connection, dialect))
.ToList();
}
}
Но тогда я хотел сделать это из проекта вне моего текущего проекта, и это то, что у меня возникают проблемы.
Я полагаю, что проблема заключается в создании объекта конфигурации из другого проекта - может быть, я исследую это - я могу представить себе, как теперь изучать код NHibernate ...
Есть идеи о том, как подойти к этой проблеме?
=============================================== =============================
ОК, вот обновление:
Я создал проект на github, если вы хотите посмотреть: https://github.com/LouisSayers/NHibernateExample
В проекте есть Project.cs в проекте TheProject, который является рабочим примером, а в NHibernateUpdateScriptGenerator есть Program.cs, который является битом с ошибкой.
Проблема теперь в том, что когда я вызываю Configure из объекта Configuration, nhibernate жалуется на то, что диалект не найден, однако у меня есть диалект, определенный в моем hibernate.cfg.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle
</property>
<property name="dialect">
NHibernate.Dialect.MsSql2005Dialect,
NHibernate
</property>
<property name="connection.connection_string_name">db</property>
<property name="adonet.batch_size">100</property>
<mapping assembly="TheProject"/>
</session-factory>
</hibernate-configuration>