using Yw.DAL.PostgreSql; namespace HStation.DAL.PostgreSql { /// /// /// public partial class PumpSeries : BaseDAL_Paras_Flags_TagName_Sorter_UseStatus, IPumpSeries { /// /// /// public override ConnectionConfig ConnectionConfig { get { return Assets.ConfigHelper.PostgreSqlConnectionConfig; } } //删除拓展 public bool DeleteEx(long ID) { if (ID < 0) { return default; } using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var project = db.Queryable().ToList().Find(x => x.ID == ID); var result = db.Deleteable(project).ExecuteCommand() > 0; if (!result) { db.RollbackTran(); return default; } else { var group = db.Queryable().ToList().Find(x => x.PumpSeriesID == project.ID); if (group != null) { var groupresult = db.Deleteable(group).ExecuteCommand() > 0; if (!groupresult) { db.RollbackTran(); return default; } else { var map = db.Queryable() .Where(x => x.PumpGroupID == group.ID) .ToList(); var listid = db.Queryable() .Where(x => x.PumpGroupID == group.ID) .Select(x => x.PumpMainID) .ToList(); if (map.Count > 0) { var Modelresult = db.Deleteable(map).ExecuteCommand() > 0; if (!Modelresult) { db.RollbackTran(); return default; } else { var main = db.Queryable().ToList(); foreach (var item in main) { if (item.PumpSeriesID == project.ID) { listid.Add(item.ID); } } var mainresult = db.Deleteable() .In(x => x.ID, listid) .ExecuteCommand() > 0; if (!mainresult) { db.RollbackTran(); return default; } } } } } else { var listid = new List(); var main = db.Queryable().ToList(); foreach (var item in main) { if (item.PumpSeriesID == project.ID) { listid.Add(item.ID); } } if (listid.Count > 0) { var mainresult = db.Deleteable() .In(x => x.ID, listid) .ExecuteCommand() > 0; if (!mainresult) { db.RollbackTran(); return default; } } } db.CommitTran(); return result; } } catch (Exception ex) { db.RollbackTran(); throw; } } } } }