2.创建NHibernateHelper帮助类,生成sessionFactory

Posted fzxiaoyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.创建NHibernateHelper帮助类,生成sessionFactory相关的知识,希望对你有一定的参考价值。

接上一篇文章 使用FluentNHibemate 操作数据库,添加映射到数据库

http://www.cnblogs.com/fzxiaoyi/p/8443586.html

Model文件下再创建个新的类NHibernateHelper

 

编写代码如下:

using NHibernate;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace mysqlDateBase.Model
{
    /// <summary>
    /// 这个帮助类是用来得到session,使用session来操作数据库
    /// </summary>
    class NHibernateHelper
    {
        //单例模式  sessionFactory可以取得session,利用session可以去操作数据库。
        private static ISessionFactory sessionFactory = null;
        private static string dateBase = "game"; //数据库名称
        private static string dateUserName = "root"; //数据库用户名
        private static string datePassWord = "root"; //数据库密码

        private static ISessionFactory SessionFactory
        {
            get
            {
                if (sessionFactory == null)
                    InitSessionFanctory();
                return sessionFactory;
            }
        }

        //初始化sessionFactory
        private static void InitSessionFanctory()
        {
            /*出现异常:
            “FluentNHibernate.Cfg.FluentConfigurationException”类型的未经处理的异常在 
            FluentNHibernate.dll 中发生

            解决方法:下载 mysql-connector-net-6.9.9.msi进行安装,使用MySql.Data.dll连接
            http://dev.mysql.com/downloads/connector/net/    
            */
            
            sessionFactory = FluentNHibernate.Cfg.Fluently.Configure().Database(FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard.ConnectionString
         (db => db.Server("localhost").Database(dateBase).Username(dateUserName).Password(datePassWord))).Mappings(x => x.FluentMappings.AddFromAssemblyOf<NHibernateHelper>()).BuildSessionFactory();
        }
        //用于获取Session
        public static ISession OpenSession()
        {
            return SessionFactory.OpenSession();
        }
    }
}

  

以上是关于2.创建NHibernateHelper帮助类,生成sessionFactory的主要内容,如果未能解决你的问题,请参考以下文章

当我在 C++ 中派生一个类时,它是不是会创建一个基类对象并将其作为我的成员变量存储在派生类中?

必背范文九人生哲理类:机遇

画布签名触摸在 phonegap 中产生问题

对象创建在 oracle 中产生错误

数据库怎么映射生成java实体类

Application对象