using SqlSugar; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.DAL { /// /// 数据库访问基类 /// /// 实体类类型 public partial class CorpDAL where T : Entity.CorpEntity,new() { /// /// 连接配置 /// public virtual ConnectionConfig ConnectionConfig { get { return default; } } #region Insert /// /// 插入指定对象到数据库中 /// public virtual long Insert(T entity) { if (entity == null) return default; if (entity.CorpID < 1) 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; var corpIds = list.Select(x => x.CorpID).Distinct().ToList(); if (corpIds.Count() != 1 || corpIds[0] < 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; var corpIds = list.Select(x => x.CorpID).Distinct().ToList(); if (corpIds.Count() != 1 || corpIds[0] < 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; if (entity.CorpID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable(entity).IgnoreColumns(it => new { it.CorpID }).ExecuteCommand() > 0; } } /// /// 更新部分 /// public virtual bool UpdatePart(T entity, List pros) { if (entity == null) return default; if (entity.CorpID < 1) 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; var corpIds = list.Select(x => x.CorpID).Distinct().ToList(); if (corpIds.Count() != 1 || corpIds[0] < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable(list).IgnoreColumns(it => new { it.CorpID }).ExecuteCommand() > 0; } } /// /// 批量更新部分 /// public virtual bool UpdatesPart(List list, List pros) { if (list == null || list.Count < 1) return default; var corpIds = list.Select(x => x.CorpID).Distinct().ToList(); if (corpIds.Count() != 1 || corpIds[0] < 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; var corpIds = list.Select(x => x.CorpID).Distinct().ToList(); if (corpIds.Count() != 1 || corpIds[0] < 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; if (entity.CorpID < 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; var corpIds = list.Select(x => x.CorpID).Distinct().ToList(); if (corpIds.Count() != 1 || corpIds[0] < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(list).ExecuteCommand() > 0; } } /// /// 根据指定对象的ID,从数据库中删除指定对象 /// public virtual bool DeleteByID(long CorpID, long ID) { if (ID < 1) return default; if (CorpID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(x =>x.CorpID==CorpID&&x.ID == ID).ExecuteCommand() > 0; } } /// /// 通过id列表删除 /// public virtual bool DeleteByIds(long CorpID, List ids) { if (ids == null || ids.Count < 1) return default; if (CorpID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(x =>x.CorpID==CorpID&&ids.Contains(x.ID)).ExecuteCommand() > 0; } } /// /// 通过 CorpID 删除 /// public virtual bool DeleteByCorpID(long CorpID) { if (CorpID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(x => x.CorpID == CorpID).ExecuteCommand() > 0; } } /// /// 通过 CorpIds 列表删除 /// public virtual bool DeleteByCorpIds(List CorpIds) { if (CorpIds == null || CorpIds.Count() < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable().Where(x => CorpIds.Contains(x.CorpID)).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 CorpID, long id) { if (CorpID < 1) return default; if (id < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable().First(x=>x.CorpID==CorpID&&x.ID==id); } } /// /// 通拓id列表获取 /// /// public virtual List GetByIds(long CorpID, List ids) { if (ids == null || ids.Count < 1) return default; if (CorpID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable().OrderBy(x => x.ID).Where(x =>x.CorpID==CorpID&&ids.Contains(x.ID)).ToList(); } } /// /// 通过 CorpID 获取 /// public virtual List GetByCorpID(long CorpID) { if (CorpID < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable().Where(x => x.CorpID == CorpID).ToList(); } } /// /// 通过 CorpID 获取 /// public virtual List GetByCorpIds(List CorpIds) { if (CorpIds == null || CorpIds.Count < 1) return default; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable().Where(x => CorpIds.Contains(x.CorpID)).ToList(); } } #endregion } }