using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using SqlSugar; namespace IStation.DAL { /// /// 数据库访问基类 /// /// 实体类类型 public partial class BaseDAL where T : Entity.BaseEntity, new() { /// /// 连接配置 /// public virtual ConnectionConfig ConnectionConfig { get { return default; } } #region Insert /// /// 插入指定对象到数据库中 /// public virtual long Insert(T entity) { if (entity == null) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Insertable(entity).ExecuteReturnSnowflakeId(); } } /// /// 插入指定对象集合到数据库中 /// public virtual bool Inserts(List list) { if (list == null || list.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Insertable(list).ExecuteReturnSnowflakeIdList().Count()>0; } } /// /// 插入并返回 /// public virtual List InsertsR(List list) { if (list == null || list.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Insertable(list).ExecuteReturnSnowflakeIdList(); } } /// /// 大批量插入 /// public virtual bool BulkInserts(List list) { if (list == null || list.Count < 1) return default; list.ForEach(x=>x.ID=SnowFlakeSingle.instance.NextId()); using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Fastest().BulkCopy(list)>0; } } #endregion #region Update /// /// 更新对象属性到数据库中 /// public virtual bool Update(T entity) { if (entity == null) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable(entity).ExecuteCommand()>0; } } /// /// 更新部分 /// public virtual bool UpdatePart(T entity, List pros) { if (entity == null) return default; if (pros == null || pros.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable(entity).UpdateColumns(pros.ToArray()).ExecuteCommand()>0; } } /// /// 更新指定对象集合到数据库中 /// public virtual bool Updates(List list) { if (list == null || list.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable(list).ExecuteCommand() > 0; } } /// /// 批量更新部分 /// public virtual bool UpdatesPart(List list, List pros) { if (list == null || list.Count() < 1) return default; if (pros == null || pros.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable(list).UpdateColumns(pros.ToArray()).ExecuteCommand() > 0; } } /// /// 大批量更新 /// public virtual bool BulkUpdates(List list) { if (list == null || list.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Fastest().BulkUpdate(list) > 0; } } #endregion #region Delete /// /// 从数据库中删除指定对象 /// public virtual bool Delete(T entity) { if (entity == null) return default; if (entity.ID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(entity).ExecuteCommand() > 0; } } /// /// 从数据库中删除指定对象集合 /// public virtual bool Deletes(List list) { if (list == null || list.Count < 1) return default; if (list.Exists(x => x.ID < 1)) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(list).ExecuteCommand() > 0; } } /// /// 根据指定对象的ID,从数据库中删除指定对象 /// public virtual bool DeleteByID(long ID) { if (ID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(x=>x.ID==ID).ExecuteCommand() > 0; } } /// /// 通过id列表删除 /// public virtual bool DeleteByIds(List ids) { if (ids == null || ids.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(x => ids.Contains(x.ID)).ExecuteCommand() > 0; } } /// /// 从数据库中删除所有对象 /// public virtual bool DeleteAll() { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.DbMaintenance.TruncateTable(); } } #endregion #region Query /// /// 返回数据库所有的对象集合 /// public virtual List GetAll() { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable().ToList(); } } /// /// 查询数据库,返回指定ID的对象 /// public virtual T GetByID(long id) { if (id < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable().First(x => x.ID == id); } } /// /// 通拓id列表获取 /// /// public virtual List GetByIds(List ids) { if (ids == null || ids.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable().OrderBy(x=>x.ID).Where(x =>ids.Contains(x.ID)).ToList(); } } #endregion } }