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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM