基於NET6平台WebApi嘗鮮項目: 基於最新的.NET6平台,完全拋棄繁雜的接口,采用.NET最經典的三層架構,結合簡化的DDD設計模式... (gitee.com)
1、Sqlsugar配置完畢,我們按照如下結構來創建實體類,為了方便開發,我們先創建一個實體基類EntityBase,然后創建Address類繼承於EntityBase
using SqlSugar; namespace NET6.Domain.Entities { /// <summary> /// 實體基類 /// </summary> public class EntityBase { /// <summary> /// 編號 /// </summary> [SugarColumn(IsPrimaryKey = true, ColumnDescription = "主鍵")] public string Id { get; set; } = Guid.NewGuid().ToString("N"); /// <summary> /// 是否刪除 /// </summary> [SugarColumn(ColumnDescription = "是否刪除")] public bool IsDeleted { get; set; } = false; /// <summary> /// 創建者Id /// </summary> [SugarColumn(ColumnDescription = "創建者Id")] public string CreateUserId { get; set; } /// <summary> /// 創建時間 /// </summary> [SugarColumn(ColumnDescription = "創建時間")] public DateTime CreateTime { get; set; } = DateTime.Now; /// <summary> /// 刪除者Id /// </summary> [SugarColumn(ColumnDescription = "刪除者Id")] public string DeleteUserId { get; set; } /// <summary> /// 刪除時間 /// </summary> [SugarColumn(ColumnDescription = "刪除時間")] public DateTime DeleteTime { get; set; } } }
using SqlSugar; namespace NET6.Domain.Entities { /// <summary> /// 地址 /// </summary> [SugarTable("address")] public class Address : EntityBase { /// <summary> /// 用戶ID /// </summary> public string UserId { get; set; } /// <summary> /// 收件人姓名 /// </summary> public string Name { get; set; } /// <summary> /// 收件人手機號 /// </summary> public string Phone { get; set; } /// <summary> /// 省份 /// </summary> public string Province { get; set; } /// <summary> /// 城市 /// </summary> public string City { get; set; } /// <summary> /// 區域 /// </summary> public string Area { get; set; } /// <summary> /// 詳細地址 /// </summary> public string Detail { get; set; } /// <summary> /// 是否是默認地址 /// </summary> public bool IsDefault { get; set; } } }
2、為了更方便的使用數據庫,我們為解決方案新增一個控制台項目,並使用CodeFirst來同步數據庫表結構,新增控制台項目取名為EntitySync,打開Program.cs,添加如下代碼
// See https://aka.ms/new-console-template for more information using NET6.Domain.Entities; using SqlSugar; var db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "server=localhost;Database=DBTest;Uid=root;Pwd=123456@q;", DbType = DbType.MySql, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute }); #region Aop //db.Aop.OnLogExecuting = (sql, pars) => //{ // Console.WriteLine(sql + "" + Db.Utilities.SerializeObject // (pars.ToDictionary(it => it.ParameterName, it => it.Value))); // Console.WriteLine(); //}; #endregion #region 對話框 Console.WriteLine("是否確定同步數據庫表結構?(同名數據表將會被備份,生產環境慎用,回車確認)"); var str = Console.ReadKey(); if (str.Key == ConsoleKey.Enter) { Console.WriteLine("同步中,請稍后..."); } else { Console.WriteLine("\r\n輸入錯誤,已退出..."); return; } #endregion //同步數據表結構 db.DbMaintenance.CreateDatabase(); db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[] { typeof(Address) }); Console.WriteLine("數據庫結構同步完成!");
3、將EntitySync設置為啟動項目,運行,打開數據庫會發現數據表已經創建完成。