<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      NHibernate配置問題總結

        NHIbernate為一款優秀的ORM框架,它為我們開發基于關系型數據庫的系統提供的相當的便利性。網上關于它的介紹有很多(如http://www.rzrgm.cn/lyj/archive/2008/10/30/1323099.html),我這里就不在多說了。下面介紹我在用NHibernate中遇到的一些配置上的問題。

        我使用的NHibernate版本是NHibernate-2.1.2.GA-bin。以前的版本沒有用過,我覺得不同的版本下,NHibernate的配置是不一樣的。也許有人說版本都不一樣配置當然應該有區別了。但是我這里想說的是不僅僅是配置文件上的區別,各個版本下的NHibernate需要的其他一些程序集文件也是不一樣的(讓大俠見笑了,這個我以前真不知道,以為NHibernate版本升級更換一下新的NHibernate.dll就行了。)

        下面我做的事情就是要將在NHibernate2.0.1.4000版本下能正常運行的程序換成2.1.2.4000遇到的一些問題。

        環境:VS2008 SP1, SQLSERVER EXPRESS2005

        NHibernate版本:NHibernate-2.1.2.GA

      系統結構如下:

        

        首先我將BLL下的NHibernate文件更換了。出現的第一個異常如下:

        

        但是我查看了程序的Bin目錄,發現是有Iesi.Collections.dll文件的。再說在2.0.1.4000運行不是能正常運行嗎。?

        我查看了一下Iesi.Collections.dll的版本,發現時程序集的版本確實是不一樣。那么難道是NHibernate版本不同,他需要的其他程序集的版本也不一樣嗎。帶著這個疑問,我用中間語言反匯編工具(在vs2008的命令提示窗口中輸入ildasm即可以打開工具)看了一下兩個版本下的NHibernate.dll,發現問題了。2.0.1.4000在IL DASM中顯示元數據信息為如下圖:

        

           而2.1.2.4000中的元數據信息如下:

        

           從上面兩個圖中可以清楚的看出:在這兩個版本中所需要的Iesi中需要的版本是不一樣的。也就是說如果你在2.1.2.4000中使用另外的一個Iesi版本,程序在加載2.1.2.4000的NHIbernate.dll時候,由于所需的其他程序集的版本必須要一直,否則,程序在運行時候就會拋異常。

          在發現上面的問題后,我把NHibernate需要的其他動態庫文件(如Iesi.Collections.dll文件)添加到bin目錄中。

        我替換的時候,在我的NHibernate配置文件hibernate.cfg.xml文件中都配置成”nhibernate-configuration-2.2“,這個不需要變化。(我有點不解,不同的版本下這個配置一樣也行。我覺得似乎一個應該是2.1一個應該是2.2,出現問題時,我以為是這個問題,結果發現不是這個造成的)。

          替換后程序運在運行中打開每個會話的時(ISession session = cfg.BuildSessionFactory().OpenSession();)

      程序依然報如下異常:

        

        由上述異常信息可以得知是因為沒有配置造成的,所以應該在NHibernate.cfg.xml中添加對他的配置(2.0.1.4000中不需要對他進行配置)。配置如下:

        <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>。

        添加完配置后,運行程序依然拋異常,如下圖:

        

        根據異常的提示,我認為是缺少NHibernate.ByteCode.Castle.dll而導致程序加載出錯,于是我將NHibernate.ByteCode.Castle.dll添加到Bin目錄。繼續編譯后繼續運行程序,繼續拋異常,如下圖:

        

        由于這個程序集和Castle有關,由此我不得不懷疑相關的Castle的相關的程序集也應該需要。添加進來以后。繼續運行程序,發現在使用HQL時候(IList<UserInfo> list = session.CreateQuery(" from UserInfo")),程序還是拋異常。如下圖:

        

        于是,我又添加Antlr3.Runtime.dll文件【當然得是上面異常中出現的版本】后,程序正常運行。

        總結:NHibernate-2.1.2.GA版本下,做ORM開發,需要的動態庫如下(以Castle而言):

        1、NHibernate.dll   2、Antlr3.Runtime.dll  3、Castle.Core.dll  4、Castle.DynamicProxy2.dll   5、Iesi.Collections.dll   6、NHibernate.ByteCode.Castle.dll

        7、log4net.dll

        NHibernate-3.0.0下配置依然需要上述7個庫文件,只是版本不一樣罷了。  

        當然,如果使用的不是Castle,3、4就應該是相應的動態庫了!

         后記:NHibernate發展到今天【已經推出3.0版本】,依然有許許多多的追隨者,我想應該是有很多原因的。即是今天MS同樣推出了ORM技術LINQ、Entity FrameWork等等。我泛泛使用后覺得,Nhibernate的使用還是比他們都麻煩點,主要是配置方面。

        好了,就絮叨到這。希望對初學NHibernate的朋友有所幫助。

      posted @ 2010-09-12 17:58  tyb1222  閱讀(812)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日本道高清一区二区三区| 日韩在线视频一区二区三区| 欧美人成在线播放网站免费| 国产精品毛片一区视频播| 久久本道综合久久伊人| 日韩永久永久永久黄色大片| 免费AV片在线观看网址| 午夜免费福利小电影| 99在线小视频| 国产亚洲欧美日韩在线一区二区三 | 国产馆在线精品极品粉嫩| 日韩中文字幕av有码| 日本一区二区三区专线| 国产av成人精品播放| 丰满老熟妇好大bbbbb| 国内自拍av在线免费| 国产精品久久久久久人妻精品动漫 | 在线a级毛片无码免费真人| 亚洲毛片多多影院| 超碰自拍成人在线观看| 加勒比久久综合网天天| 女人与牲口性恔配视频免费| 久久精品国产高潮国产夫妻| 亚洲尤码不卡av麻豆| 精品国产迷系列在线观看| 亚洲跨种族黑人xxxxx| 亚洲中文字幕无码爆乳APP| 亚洲aⅴ男人的天堂在线观看| 国产94在线 | 亚洲| 亚洲av无在线播放中文| 大尺度国产一区二区视频| 人妻出轨av中文字幕| 国产精品一区二区在线欢 | 内射干少妇亚洲69xxx| 中文字幕一区二区人妻| 久久精品国产99国产精品澳门| 暖暖 免费 高清 日本 在线观看5 色老头亚洲成人免费影院 | 午夜福利看片在线观看| 欧美丰满熟妇xxxx性ppx人交| 欧美日本国产va高清cabal| 亚洲午夜爱爱香蕉片|