阅读 393

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的有多难受只有自己知道。


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐