海南行指三亚网站开发seo站外推广
SqlGugar是一个非常好的数据库操作框架,今天用一个示例来分享如何使用。
新建一张课程表
结构如下:
CREATE TABLE `t_course` (`id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',`title` varchar(1024) NOT NULL COMMENT '课程标题',`description` text NOT NULL COMMENT '课程描述',`user_id` int NOT NULL COMMENT '创建者ID',`is_published` int NOT NULL COMMENT '是否发布',`created_at` datetime NOT NULL COMMENT '创建时间',`updated_at` datetime NOT NULL COMMENT '修改时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='课程'
对应的c#类如下
[SugarTable("t_course", "课程")]
public class Course : BaseModel
{[SugarColumn(ColumnName = "title",ColumnDescription = "课程标题",Length = 1024)][JsonProperty(PropertyName = "title")]public string Title { get; set; } = "";[SugarColumn(ColumnName = "description",ColumnDescription = "课程描述",ColumnDataType = "text")][JsonProperty(PropertyName = "description")]public string Description { get; set; } = "";[SugarColumn(ColumnName = "user_id",ColumnDescription = "创建者ID")][JsonProperty(PropertyName = "user_id")]public int UserId { get; set; }[SugarColumn(ColumnName = "is_published",ColumnDescription = "是否发布")][JsonProperty(PropertyName = "is_published")]public int IsPublished { get; set; }
}
新建一个DBHelper类来管理数据库
public class DBHelper{//多库情况下使用说明://如果是固定多库可以传 new SqlSugarScope(List<ConnectionConfig>,db=>{}) 文档:多租户//如果是不固定多库 可以看文档Saas分库//https://www.donet5.com/Home/Doc?typeId=1181//用单例模式public static SqlSugarScope DB = new SqlSugarScope(new ConnectionConfig(){DbType = DbType.MySql,//数据库类型//ConnectionString = "server=127.0.0.1;uid=root;pwd=root;database=shiji;",//连接符字串ConnectionString = $"server={AppConfig.Get("db_host")};uid={AppConfig.Get("db_user")};pwd={AppConfig.Get("db_password")};database={AppConfig.Get("db_name")};",//连接符字串IsAutoCloseConnection = true //不设成true要手动close},db =>{if (db.Ado.IsValidConnection()){//LogUtils.Log("数据库连接成功!");}else{LogUtils.Log("数据库连接失败!");}db.Ado.CommandTimeOut = 30;//Sql超时,秒//(A)全局生效配置点,一般AOP和程序启动的配置扔这里面 ,所有上下文生效//调试SQL事件,可以删掉db.Aop.OnLogExecuting = (sql, pars) =>{//Console.WriteLine(sql);//输出sql,查看执行sql 性能无影响//获取原生SQL推荐 5.1.4.63 性能OK
#if DEBUG//Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
#endif//获取无参数化SQL 对性能有影响,特别大的SQL参数多的,调试使用//UtilMethods.GetSqlString(DbType.SqlServer,sql,pars)};//多个配置就写下面//db.Ado.IsDisableMasterSlaveSeparation=true;//注意多租户 有几个设置几个//db.GetConnection(i).Aop});}
自动创建表
DB.CodeFirst.InitTables<Model.Course>();
然后就可以进行愉快的操作啦