DNHI.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using NHibernate;
  5. using NHibernate.Cfg;
  6. using NHibernate.Criterion;
  7. using NHibernate.Engine;
  8. using NHibernate.SqlCommand;
  9. using NHibernate.SqlTypes;
  10. using D.Constant;
  11. namespace D.Common
  12. {
  13. public static class DNHI
  14. {
  15. #region Properties属性
  16. private static readonly object _lockObject = new object();
  17. private static ISessionFactory m_factory;
  18. public static ISessionFactory Factory
  19. {
  20. get
  21. {
  22. if (m_factory.IsNull())
  23. {
  24. lock (_lockObject)
  25. {
  26. if (m_factory.IsNull())
  27. {
  28. try
  29. {
  30. NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration().Configure(DConfig.NHI_CONFIG);
  31. m_factory = cfg.BuildSessionFactory();
  32. }
  33. catch (Exception ex)
  34. {
  35. DLog.WriteLog(DMessage.ERR, ex);
  36. }
  37. }
  38. }
  39. }
  40. return m_factory;
  41. }
  42. }
  43. #endregion
  44. #region Methods方法
  45. /// <summary>
  46. /// 初始化NHibernate
  47. /// </summary>
  48. public static void InitFactory()
  49. {
  50. lock (_lockObject)
  51. {
  52. NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration().Configure(DConfig.NHI_CONFIG);
  53. m_factory = cfg.BuildSessionFactory();
  54. }
  55. }
  56. #endregion
  57. }
  58. }