接上一篇文章 使用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的更多相关文章

  1. 1、Hibernate之生成SessionFactory源码追踪

    Hibernate的所有session都是由sessionFactory来生成的,那么,sessionFactory是怎么得来的呢?它与我们配置的xxx.cfg.xml文件以及xxx.hbm.xml文 ...

  2. hibernate中3个重要的类 Configuration SessionFactory Session

    配置类Configuration 主要负责管理hibernate的配置信息以及启动hibernate,在hibernate运行时,配置文件取读底层的配置信息,基本包括数据库驱动,url.usernam ...

  3. .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数

    .Net中我们通常使用Random类生成随机数,在一些场景下,我却发现Random生成的随机数并不可靠,在下面的例子中我们通过循环随机生成10个随机数: ; i < ; i++) { Rando ...

  4. php面向对象的基础:创建OOP的类和字段

    类的创建 class Computer{ //类的字段(成员) //类的方法 } 对象的声明 $computer = new Computer(); new标识符是为了在内存中创建一个对象(实例),而 ...

  5. Eclipse中设置在创建新类时自动生成注释

    方法一:Eclipse中设置在创建新类时自动生成注释 windows-->preference Java-->Code Style-->Code Templates code--&g ...

  6. 将Eclipse中现有的java类生成类图

    需求:将Eclipse中现有的java类生成类图 一:什么是ModelGoon? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图). 二:安装 下载Mod ...

  7. C#实体类生成XML与XML Schema文档

    一.实体类生成XML private void CreateXML() { Type[] objType = DBEntityRegst(); foreach (var item in objType ...

  8. 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数

    高并发分布式系统中生成全局唯一(订单号)Id   1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...

  9. Jpa实体类生成图解

    Jpa实体类生成图解   创建连接     创建项目  

随机推荐

  1. cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令。

    cmder使用简介 Cmder is a software package created out of pure frustration over the absence of nice conso ...

  2. SpringBoot使用@ServerEndpoint无法依赖注入问题解决(WebSocket)

    如上两图所示,在WebSocket中我想使用Redis.把自己编写的RedisUtil使用@Autowired自动注入到当前类. 在运行时,出现异常:java.lang.NullPointExcept ...

  3. NP完全问题的证明

    目录 NP完全问题的证明 一.限制法 最小覆盖问题(VC) 子图同构问题 0-1背包(Knapsack) 三元集合的恰当覆盖(X3C) 集中集 有界度的生成树 多处理机调度 二.局部替换法 3SAT问 ...

  4. C++动态规划求解0-1背包问题

    问题描述: 给定n种物品和一背包.物品i的重量是wi,其价值为vi,背包的容量为C.问:应该如何选择装入背包的物品,是的装入背包中物品的总价值最大? 细节须知: 暂无. 算法原理: a.最优子结构性质 ...

  5. 「雅礼集训 2018 Day5」Convex 凸包、莫队

    LOJ 看到离线区间操作仍然考虑莫队,然后可以发现:我们对于原来的凸包集合按照极角序维护一个链表,那么删除一个位置可以\(O(1)\),撤回删除操作也可以\(O(1)\)(因为原来的链表结构中当前节点 ...

  6. Codility MinMaxDivision

    最近发现了一个刷题网站:https://app.codility.com/programmers/lessons 这个网站做题目时候的界面让我惊艳到了 首先这是题目界面: 然后点击start, 出来的 ...

  7. 关于vs无法创建虚拟目录的问题

    插入链接:https://blog.csdn.net/zhao1955/article/details/92182935 补充:改完之后不要忘记以管理员的身份运行vs

  8. .NET Core MD5加密 32位和16位

    public class MD5Help { //此代码示例通过创建哈希字符串适用于任何 MD5 哈希函数 (在任何平台) 上创建 32 个字符的十六进制格式哈希字符串官网案例改编 /// <s ...

  9. tqdm()与set_description()的用法

    pbar=tqdm(range(55156))for i in pbar: # print(i) a=464443161*845113131 pbar.set_description("tr ...

  10. Vue学习之生命周期钩子小结(四)

    一.生命周期钩子(函数): 1.每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运 ...