使用SqlSugar作为ORM框架。
SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网 (donet5.com)
导入Nuget包
在服务器的SimpleServer解决方案中添加新的类库,命名为“MySql”。在此类库项目中进行SqlSugar的初始化和存放数据库对应的类。
在MySql项目中添加文件夹,命名为MySQLData,并且将自动生成的Class1文件从解决方案资源管理器中命名为MySqlMgr。
点击“工具——Nuget包管理器——管理解决方案的Nuget程序包”,在打开的界面中搜索“SqlSugarCore”,点击后安装在MySql类库项目中。
最后再在解决方案资源管理器中选中“MySql——依赖项——右键”,在弹出的窗口中选择“ServerBase”并确定。
新建数据库
MySQL摘要
我们依然使用wampServer和Navicat建数据库,具体过程参见连接。
我们不需要新连接,只需要在之前的localhost_3306里新建一个sulsugartest数据库,使用utf8字符集,使用utf8-general排序规则。
在sulsugartest数据库里新建一个表,并设计:
| 列名 |
类型 |
长度 |
小数点 |
不是null |
主键 |
其他 |
| Id |
int |
11 |
0 |
√ |
√ |
自动递增、无符号、无重复 |
| Username |
varchar |
255 |
0 |
√ |
|
无重复 |
| Password |
varchar |
255 |
0 |
√ |
|
|
| Logindate |
datetime |
0 |
0 |
√ |
|
|
| Logintype |
varchar |
255 |
0 |
√ |
|
|
| Token |
varchar |
255 |
0 |
|
|
|
数据库中尽量不要出现null,否则很可能会产生性能问题。
设置Username和Id无重复,需要添加索引
| 名 |
栏位 |
索引类型 |
索引方法 |
| Id |
Id |
Unique |
BTree |
| Username |
Username |
Unique |
BTree |
最后点击保存,命名为user。
初始化SqlSugar
修改MySqlMgr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| using SqlSugar;
namespace MySql { public class MySqlMgr : SingletonPattern<MySqlMgr> { #if DEBUG private const string connectionStr = "server=localhost;Database=sqlsugartest;Uid=root;Pwd=;"; #else private const string connectionStr = ""; #endif public SqlSugarClient? SqlSugarDB = null;
public void Init() { SqlSugarDB = new SqlSugarClient( new ConnectionConfig() { ConnectionString = connectionStr, DbType = DbType.MySql, IsAutoCloseConnection = true, } #if DEBUG ,db => { db.Aop.OnLogExecuting = (sql, pars) => { Console.WriteLine(sql); UtilMethods.GetNativeSql(sql, pars); UtilMethods.GetSqlString(DbType.MySql,sql, pars); }; } #endif ); } } }
|
修改Program
1 2 3 4 5 6
| static void Main(string[] args) { MySqlMgr.Instance.Init(); ServerSocket.Instance.Init(); Console.ReadLine(); }
|
User实体类
实体类是用来映射数据库内的表的类。注意不要和协议类(继承了MsgBase的类)搞混了,后者是用来传输数据的类。
配置实体 - SqlSugar
注意,User实体类里使用的特性是在数据库内已经存在“user”表的前提下。还有一些特性是用在生成表上的。见下面:
Code First 代码优先,数据迁移 - SqlSugar
在MySQLData文件夹内新建User类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| using SqlSugar;
namespace MySql.MySQLData { [SugarTable("user")] public class User { [SugarColumn(IsPrimaryKey = true,IsIdentity = true)] public int Id { get; set; } public string? Username { get; set; } = null; public string? Password { get; set; } = null; public DateTime? Logindate { get; set; } = null; public string? Logintype { get; set; } = null; public string? Token { get; set; } = null; } }
|