Castle ActiveRecord 已經(jīng)發(fā)布了最新的2.1版本,同時(shí)也支持了更多的數(shù)據(jù)庫和修正了很多的Bug,目前項(xiàng)目里使用的卻還是最早的1.0版本,在數(shù)據(jù)庫遷移時(shí)遇到了問題,比如從MSSqlServer 遷移到SqLite 時(shí),1.0版本就不支持,讓我好不痛苦。因此,下載了2.1版本,測試,卻得到很多莫名其妙的問題,為移植工作增加了不少的難度,此過程曾一度懷疑選擇AR是否是一個(gè)正確的選擇,經(jīng)過了一段失敗的嘗試,終于有了結(jié)果。記錄如下:
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”的設(shè)置。?
?
?2.如果是從SqlServer 遷移到?PostgreSQL時(shí),可能遇到:不支持自動(dòng)增長ID列的異常,原因如下:
PostgreSQL有好多版本,不同版本要使用不的 “方言”,PostgreSQL方言有以下幾種:
PostgreSQLDialect?
PostgreSQL81Dialect?
PostgreSQL82Dialect?
我使用的數(shù)據(jù)庫是8.4的,在?PostgreSQL82Dialect 一切OK。
?
另外,Castle AR在nHibernate基礎(chǔ)上支持根據(jù)領(lǐng)域模型創(chuàng)建數(shù)據(jù)表的工作方式給我的工作帶來便利,但目前還不支持增量更新,一想到這里就有點(diǎn)懷念XPO,希望nHibernate小組繼續(xù)努力,讓我等也能乘勢(shì)而上。
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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