SqlSugar学习笔记四

您所在的位置:网站首页 sugar官网 SqlSugar学习笔记四

SqlSugar学习笔记四

2024-01-22 20:42| 来源: 网络整理| 查看: 265

简介:SqlSugar提供了完整的解决方案,只需要配置,他可以帮助自动分表,自己帮助管理表关系,我们只需要考虑业务,不需要去考虑分表后的问题;接下来,通过SqlSugar实现对数据库实现按时间实现分表

一、实体类设计

必须通过特性指定实体类分表方式以及按照哪个字段分表

[SplitTable(SplitType.Year)]//指定按照时间分表 [SugarTable("CommodityInfo_{year}{month}{day}")] public partial class CommodityInfo { [SugarColumn(IsPrimaryKey = true)] public Guid Id { get; set; } /// Default: /// Nullable:True /// public decimal? Price { get; set; } [SplitField] //分表以当前这个属性 对应的数据库表字段数据为维度来分表 public DateTime CreateTime { get; set; } public string? ImageUrl { get; set; } } 二、执行操作 //一、配置数据库链接 ConnectionConfig connectionConfig = new ConnectionConfig() { DbType = DbType.SqlServer, ConnectionString = "Data Source=DESKTOP-T2D6ILD;Initial Catalog=SqlSugarCustomerDB;User ID=sa;Password=sa123", IsAutoCloseConnection = true }; //二、模拟产生10000条数据 List infolist = new List(); for (int i = 0; i < 10_000; i++) { int year = i % 10; //出现余数: 0,1,2,3,4,5,6,7,8,9 int yearNew = year + 2000; //yearNew:2000, 2001,2002,2003,2004,2005,2006,2007,2008,2009 var commodity = new CommodityInfo() { Id = Guid.NewGuid(), CreateTime = new DateTime(yearNew, 1, 10),//拼凑年份 ImageUrl = "www.baidu.com", Price = 45678 }; infolist.Add(commodity); } using (SqlSugarClient sqlSugarClient = new SqlSugarClient(connectionConfig)) { //三、CodeFrist创建数据库和表 //SplitTables:分表必须的 //规则:自动分表有多种规则: sqlSugarClient.DbMaintenance.CreateDatabase();//创建数据库 sqlSugarClient.CodeFirst.SplitTables().InitTables();//创建表 //四、插入数据 //方式一:循环插入每条数据 foreach (var info in infolist) { sqlSugarClient.Insertable(info).SplitTable().ExecuteCommand(); //ExecuteReturnSnowflakeId返回的是雪花ID---主键---long类型的数字 } //方式二:一次性插入10000条数据 //sqlSugarClient.Insertable(infolist).SplitTable().ExecuteCommand(); //注意:分表后,增删改查都必须要加上这SplitTable()方法 //五、查询 //方式一:按照时间范围查询 List allList = sqlSugarClient.Queryable().SplitTable(new DateTime(2000, 1, 1), new DateTime(2009, 2, 1)).ToList(); //方式二:按照表名查询 var list1 = sqlSugarClient.Queryable().SplitTable(c => { return c.FindAll(x => x.TableName.Equals("CommodityInfo_20010101")); }).ToList(); }

这一些列操作,在配置好后,在CRUD中都带上SplitTable()方法,到哪个表查询,都有SqlSugar内部来实现

本文来自博客园,作者:码农阿亮,转载请注明原文链接:https://www.cnblogs.com/wml-it/p/16464048.html

技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正! 开源库地址,欢迎点亮: GitHub:https://github.com/ITMingliang Gitee:   https://gitee.com/mingliang_it GitLab: https://gitlab.com/ITMingliang 建群声明: 本着技术在于分享,方便大家交流学习的初心,特此建立【编程内功修炼交流群】,为大家答疑解惑。热烈欢迎各位爱交流学习的程序员进群,也希望进群的大佬能不吝分享自己遇到的技术问题和学习心得!进群方式:扫码关注公众号,后台回复【进群】。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3