SqlSugar的使用

为什么不使用EF,各有各的看法,此处不做讨论。

如何快速使用高效使用SqlSugar。

下面举栗一个使用全过程

前期工作

1:下载SqlSugar。

2:下载MySql.Data

直接在NuGet中搜索安装,查看依赖项选择合适版本。

 

1、创建立本地数据库表

CREATE TABLE `codes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '编码:用于确认当前设备所处省份',
  `name` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '编码对应的位置名称',
  `description` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
  `createtime` datetime(6) DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

2、创建数据库表映射。手动创建,手动写也并不麻烦可以多熟悉一下。在这里不使用自动生成。注意引用(using SqlSugar)下面也是。

    [SugarTable("codes")]
    public class Codes
    {
        [SugarColumn(IsPrimaryKey = true,IsIdentity = true,ColumnName = "id")]
        public int Id { get; set; }
        [SugarColumn(ColumnName = "code")]
        public string Code { get; set; }
        [SugarColumn(ColumnName = "name")]
        public string Name { get; set; }
        [SugarColumn(ColumnName = "description")]
        public string Description { get; set; }
        [SugarColumn(ColumnName = "createtime")]
        public DateTime CreateTime { get; set; }
    }

3、创建DBset类操作数据库表

    public class DBSet<T>:SimpleClient<T> where T:class,new()
    {
        public DBSet(SqlSugarClient context) : base(context)
        {

        }
        /// <summary>
        /// 自己扩展方法使用
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public List<T> GetByIds(dynamic[] ids)
        {
            return Context.Queryable<T>().In(ids).ToList();
        }
    }

4、再封装一层表操作类,使用起来更方便。

    public class DBContext
    {
        
        public DBContext(AUTO.Enum.DBTYPE dBTYPE)
        {
            string connectionStr = dBTYPE == AUTO.Enum.DBTYPE.UPLOAD ? Setting.AppsettingDic["mysqlConnStr4UploadDB"] : Setting.AppsettingDic["mysqlConnStr4CarDB"];
            Db = new SqlSugarClient(new ConnectionConfig()
            {
                
                ConnectionString = connectionStr,
                DbType = DbType.MySql,
                IsAutoCloseConnection = true
            });
        }
        public SqlSugarClient Db;
        public DBSet<GBQ.DATA.AUTO.Entity.Codes> CDOES_DB { get { return new DBSet<AUTO.Entity.Codes>(Db); } }//编码映射数据库表

    }

5、使用

        public void Test()
        {
            var items = Db.Queryable<T_SITE_DEVICE, T_SITE_ITEM>((st, sc) => new object[] { JoinType.Left, st.DeviceId == sc.Device_id }).Select((st, sc) => new { id = st.DeviceId, name = st.DeviceId, desc = st.Description }).ToList();
            var item1 = CODE_DB.GetList(m => m.name == "合肥").SingleOrDefault();
            var item2 = CODE_DB.GetList(m => m.code == "5304d200021a46f9b9f1481fdcc43019");
            var item3 = MONITOR_ITEM_DB.GetList(m => m.ItemName == "NO");
        }

使用方法很简单,可完成多表联合查询,单表查询,高效快捷。最大的优点是使用简单。用过EF的有多难受只有自己知道。

posted @ 2019-12-23 20:33  回忆的忆  阅读(5736)  评论(0编辑  收藏  举报