我想從我的NHibernate模型和映射生成更新腳本,以便我可以將更新腳本放入增量腳本,並允許創建和更新我的數據庫從nant開始。NHibernate - 從不同的項目生成更新腳本
我可以通過以下方法生成更新腳本:
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上創建了一個項目if你想看看:https://github.com/LouisSayers/NHibernateExample
該項目在TheProject項目中有一個Program.cs,這是一個工作示例,NHibernateUpdateScriptGenerator有一個Program.cs,它是有錯誤的位。
現在的問題是,當我打電話配置從配置對象,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>