微信登录

增加表 - User.cs和User.hbm.xml

作用:增加表、列的操作

数据库加列

类和表的映射(都与数据库做映射)User.cs

  • 映射类模型文件夹
    解决方案资源管理器—目标项目—右键—添加—新建文件夹
    命名为:

    1. Model
  • 映射类文件
    解决方案资源管理器—目标项目—Model—右键—添加—新建项—类
    命名为=数据库表名字

    1. User.cs
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace MyGameServer.Model
  7. {
  8. public class User
  9. {
  10. public virtual int Id { get; set; }
  11. public virtual string Username { get; set; }
  12. public virtual string Password { get; set; }
  13. public virtual DateTime Registerdate { get; set; }
  14. }
  15. }

测试NHibernate

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using NHibernate;
  7. using NHibernate.Cfg;
  8. namespace MyGameServer
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. var configuration = new Configuration();
  15. configuration.Configure();//解析hibernate.cfg.xml
  16. configuration.AddAssembly("MyGameServer");//解析 映射文件 User.hbm.xml 等等
  17. Console.ReadKey();
  18. }
  19. }
  20. }

看见一个程序框而且没报错为成功,否则自己找原因吧

Mappings映射文件User.hbm.xml

  • 映射类文件夹
    解决方案资源管理器—目标项目—右键—添加—新建文件夹
    命名为:
    1. Mappings
  • Mappings映射文件
    解决方案资源管理器—目标项目—Model—右键—添加—新建项—XML文件
    命名为=数据库表名字=映射类文件,hbm不变
    1. User.hbm.xml
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
  3. assembly="MyGameServer"
  4. namespace="MyGameServer.Model"> <!--assembly程序集、namespace程序集+Model-->
  5. <class name="User" table="users"> <!--name对应Model的name.cs、table数据库表名-->
  6. <id name="Id" column="id" type="integer"><!--name对应Model的name.cs的、column数据库列名、type数据库列的类型-->
  7. <generator class="native"></generator><!--naitve就是与数据库相同-->
  8. </id>
  9. <property name="Username" column="username" type="String"></property>
  10. <property name="Password" column="password" type="String"></property>
  11. <property name="Registerdate" column="registerdate" type="Date"></property>
  12. </class>
  13. </hibernate-mapping>

type
nhibernate类型查询
https://nhibernate.info/doc/nhibernate-reference/mapping.html#mapping-types
ctrl+f搜索

  1. 5.2. NHibernate Types