Castle ActiveRecord 已經發布了最新的2.1版本,同時也支持了更多的數據庫和修正了很多的Bug,目前項目里使用的卻還是最早的1.0版本,在數據庫遷移時遇到了問題,比如從MSSqlServer 遷移到SqLite 時,1.0版本就不支持,讓我好不痛苦。因此,下載了2.1版本,測試,卻得到很多莫名其妙的問題,為移植工作增加了不少的難度,此過程曾一度懷疑選擇AR是否是一個正確的選擇,經過了一段失敗的嘗試,終于有了結果。記錄如下:
1、配置的改變
?原配置:
?
?

????????????????properties.Add( " hibernate.connection.driver_class " ,? " NHibernate.Driver.SqlClientDriver " );
????????????????properties.Add( " hibernate.dialect " ,? " NHibernate.Dialect.MsSql2000Dialect " );
????????????????properties.Add( " hibernate.connection.provider " ,? " NHibernate.Connection.DriverConnectionProvider " );
????????????????properties.Add( " hibernate.connection.connection_string " ,? " Data?Source=.;Initial?Catalog=DataBaseName;Integrated?Security=SSPI " );
?
?
新的配置:

????????????????properties.Add( " connection.driver_class " ,? " NHibernate.Driver.SqlClientDriver " );
????????????????properties.Add( " dialect " ,? " NHibernate.Dialect.MsSql2005Dialect " );
????????????????properties.Add( " connection.provider " ,? " NHibernate.Connection.DriverConnectionProvider " );
????????????????properties.Add( " connection.connection_string " ,? " Data?Source=.;Initial?Catalog=DataBaseName;Integrated?Security=SSPI " );
?
?
?
?
新的配置方法的改變:1是取消了“hibernate”的前綴,2是增加了“proxyfactory”的設置。?
?
?2.如果是從SqlServer 遷移到?PostgreSQL時,可能遇到:不支持自動增長ID列的異常,原因如下:
PostgreSQL有好多版本,不同版本要使用不的 “方言”,PostgreSQL方言有以下幾種:
PostgreSQLDialect?
PostgreSQL81Dialect?
PostgreSQL82Dialect?
我使用的數據庫是8.4的,在?PostgreSQL82Dialect 一切OK。
?
另外,Castle AR在nHibernate基礎上支持根據領域模型創建數據表的工作方式給我的工作帶來便利,但目前還不支持增量更新,一想到這里就有點懷念XPO,希望nHibernate小組繼續努力,讓我等也能乘勢而上。
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
