Unity服务器开发02:搭建NHibernate框架
前篇文章:
Unity服务器开发01:C#连接MySQL数据库
(一)NHibernate简介与原理
1.介绍:
NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。
2.使用原理:
3.相关文档:
官方文档链接
(二)在VS中配置Nhibernate
1.创建新的控制台应用,命名完成后,右键项目选择【管理NuGet程序包】。
2.添加NHibernate,注意版本信息。添加MySQL引用(和前篇博客一致)。
完成添加:
(三)项目工程的基础配置(步骤繁琐,直接贴出配置后结果)
1.项目命名空间设置
2.项目层级结构
3.接口类:IUserManager
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windbelledu.Model;
namespace Windbelledu.Manager//创建管理类,处理CRUD操作
{
interface IUserManager//定义接口
{
void Add(User user);
void Update(User user);
void Remove(User user);
User GetById(int id);
User GetByUsername(string username);
ICollection<User> GetAllUsers();//定义泛型
//添加一个验证用户名和密码的接口
bool VerifyUser(string username, string password);
}
}
4.实现接口的类:UserManager
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NHibernate;
using Windbelledu.Model;
using NHibernate.Criterion;
namespace Windbelledu.Manager
{
class UserManager : IUserManager //定义实现接口的类
{
public void Add(Model.User user)//插入
{
//ISession session = NHibernateHelper.OpenSession();
//session.Save(user);
//session.Close();
using (ISession session = NHibernateHelper.OpenSession())//using:使用资源后会自动释放
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(user);
transaction.Commit();
}
}