本系列实现目的:基于Photon Server实现注册于登录
一、拷贝Nbibernate项目的文件到MyGamerServer项目中。
二、数据库新建表,结构如下
三、修改文件名和配置
(1)、将拷贝的文件修改一下名字(不是必须)。修改为与User相关的。注意:修改文件下的包名也得修改,由 Nbibernate.l 修改为MyGameServer.
(2)、Model文件调整。目录 Model/下的User.cs文件字段修改为与数据库users表字段相同
namespace MyGameServer.Model { public class User { //字段跟数据库表列一样 public virtual int Id { get; set; } public virtual string UserName { get; set; } public virtual string Password { get; set; } public virtual string RegisterDate { get; set; } } }
(3)、映射文件 Mappings/ 目录下的User.hbm.xml 修改
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyGameServer" namespace="MyGameServer.Model"> <class name="User" table="users"> <id name="Id" column="id" type="Int32"> <generator class="native" /> </id> <property name="UserName" column="username" type="String" /> <property name="Password" column="password" type="String" /> <property name="RegisterDate" column="registerdate" type="String" /> </class> </hibernate-mapping>
(4)、NHibernateHelper.cs修改
using NHibernate; using NHibernate.Cfg; namespace MyGameServer { public class NHibernateHelper { private static ISessionFactory _sessionFactory; private static ISessionFactory SessionFactory { get { if (_sessionFactory == null) { var config = new Configuration(); config.Configure(); //解析nhibernate.cfg配置文件 config.AddAssembly("MyGameServer"); //解析 映射文件 ,修改为当前项目 _sessionFactory = config.BuildSessionFactory(); } return _sessionFactory; } } public static ISession OpenSession() { ////打开一个跟数据库的回话 return SessionFactory.OpenSession(); } } }
四、测试一下
在项目文件 MyGameServer.cs文件Setup()方法中添加测试代码
//服务器启动时调用 protected override void Setup() { LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance); GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(ApplicationRootPath, "log"); GlobalContext.Properties["LogFileName"] = "MySer_" + ApplicationName; XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.Combine(BinaryPath, "log4net.config"))); log.Info("MyGameServer start----------"); //测试数据库代码 UserManager userManager = new UserManager(); User user = new User(){UserName = "ffff", Password = "dwwww"}; userManager.Add(user); }
重新编译项目,将bin/Debug 下的文件拷贝到服务器上 deploy/MyGameServer/bin/ 目录下。(可能需要先停止服务)。在启动服务,查看数据库。