- 0
- 0
- 约9.22千字
- 约 10页
- 2017-06-20 发布于湖北
- 举报
NHibernate(1)-試驗
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明/logshtml
一、試驗架構圖如右
1 添加引用:NHibernate.dll、Iesi.Collections.dll,
編譯後,會自動生成Castle.Core.dll、Castle.DynamicProxy2.dll、log4net.dll
2 使用NHibernateProfier探查HQL語句:
執行NHibernateProfier的探查功能,需要在應用程序裡面配置相關信息。
首先,我們需要添加HiberHibernatingRhinos.Profiler.Appender.dll的引用。該文件在NHibernateProfier安裝目錄下可找到。
接著,
我們配置log4net:於web層目錄下創建log4net.config文件:
?xml version=1.0 encoding=utf-8?log4net? appender name=NHProfAppender type=HibernatingRhinos.Profiler.Appender.NHibernate.NHProfAppender, HibernatingRhinos.Profiler.Appender??? sink value=http://localhost/!--注意,這裡應用程序web地址--? /appender? logger name=HibernatingRhinos.Profiler.Appender.NHibernate.NHProfAppender.Setup??? appender-ref ref=NHProfAppender/? /logger/log4net
最後,在Global.asax全局文件中添加語句:
void Application_Start(object sender, EventArgs e) ??? {??????? //在应用程序启动时运行的代码??????? HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize(); ??? }
3 DAL層SessionManager.cs
using NHibernate;using NHibernate.Cfg;
namespace Siuben.NH.DAL{??? public class SessionManager??? {??????? private ISessionFactory _sessionFactory;??????? public SessionManager()??????? {??????????? _sessionFactory = GetSessionFactory();??????? }??????? private ISessionFactory GetSessionFactory()??????? {??????????? return (new Configuration()).Configure().BuildSessionFactory();??????? }??????? public ISession GetSession()??????? {??????????? return _sessionFactory.OpenSession();??????? }??? }}
4 Model層說明:
Entities:
namespace Siuben.NH.Model{??? public class Customer??? {??????? public virtual int ID { get; set; }//Virtual必須??????? public virtual string FirstName { get; set; }??????? public virtual string LastName { get; set; }??? }}
Mappings:
?xml version=1.0 encoding=utf-8 ?hibernate-mapping xmlns=urn:nhibernate-mapping-2.2 assembly=Siuben.NH.Model namespace=Siuben.NH.Model? class name =Siuben.NH.Model.Customer,Siuben.NH.Model table=Customer??? id name=ID colu
原创力文档

文档评论(0)