日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

整合NHibernate到Spring.Net (之一)

發布時間:2025/4/5 asp.net 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 整合NHibernate到Spring.Net (之一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有這段文字的惟一原因是因為spring.net尚遠遠沒有完成。因此,借鑒spring (java)的LocalSessionFactoryObject,我們在.net中創建一個LocalSessionFactoryObject

注:在Spring.Net的開發計劃中,第一個版本僅會完成aop和ioc功能,即現在在cvs上大家看到的Spring.Context,Spring.AOP,Spring.Core三個項目。下面的Spring.Data是我自行創建的,用來遷移一些項目中所必須用到的東西。

LocalSessionFactoryObject的作用

LocalSessionFactoryObject將NHibernate的配置整合到Spring中,因此,你不在需要app.config中配置nhibernate的屬性,也無需將hbm xml文件設置為嵌入

LocalSessionFactoryObject有兩個重要屬性。MappingResources是一個IList,是一系列hbm文件的列表,而HibernateProperties則是一個IDictonary,存放NHibernate的設置
<object name="mySessionFactory" class="Spring.Data.Hibernate.LocalSessionFactory,Spring.Data">
??<property name="MappingResources">
?? <list>
????<value>customer.hbm.xml</value>
????<value>color.hbm.xml</value>
?? </list>
??</property>
??<property name="HibernateProperties">
?? <props>
????<prop key="hibernate.connection.provider">NHibernate.Connection.DriverConnectionProvider</prop>
????<prop key="hibernate.dialect">NHibernate.Dialect.MsSql2000Dialect</prop>??
????<prop key="hibernate.connection.driver_class">NHibernate.Driver.SqlClientDriver</prop>
????<prop key="hibernate.connection.connection_string">Server=localhost;initial catalog=mis;User ID=sa;Password=;Min Pool Size=2</prop>
?? </props>
??</property>
</object>


LocalSessionFactoryObject實現了IFactoryObject接口,這意味著當從ioc獲取LocalSessionFactory的實例是,將調用其GetObject方法,因此,大家對這段代碼就不要有疑惑
ISessionFactory sessionFactory=(ISessionFactory)factory.GetObject("mySessionFactory");


LocalSessionFactory Object實現了IInitialObject接口,其AfterPropertiesSet方法在ioc配置屬性后調用,非常簡單
public void AfterPropertiesSet()
??{
?? if (sessionFactory==null)
?? {
????Configuration cfg=new Configuration();
????
????cfg.AddProperties(hibernateProperties);

????foreach(String hbm in mappingResources)
???? cfg.AddXmlFile(hbm);

??
????sessionFactory=cfg.BuildSessionFactory();
????
?? }
??}

下面是一段測試代碼

IObjectFactory factory=new XmlObjectFactory(System.IO.File.OpenRead("applicationcontext.xml"));
?? Customer customer=new Customer();
?? customer.Name="jjx";
?? ISessionFactory sessionFactory=(ISessionFactory)factory.GetObject("mySessionFactory");
?? ISession session=sessionFactory.OpenSession();
?? ITransaction trans=session.BeginTransaction();
?? session.Save(customer);
?? trans.Commit();
?? session.Close();

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的整合NHibernate到Spring.Net (之一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。