using Microsoft.EntityFrameworkCore.Storage; using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using APT.Infrastructure.Core; namespace APT.Infrastructure.Api { public abstract class CommonApiController : BaseApiController { /// /// 获取操作单元 /// /// /// public IUnitOfWork GetUnitOfWork() where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.UnitWork(); } readonly ServiceLocator _serviceLocator = ServiceLocator.Instance; #region old query /// /// 查询实体 /// /// /// /// /// public T GetEntity(string id, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntity(id, paths); } /// /// 查询实体 /// /// /// /// /// public T GetEntity(Guid id, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntity(id, paths); } /// /// 查询实体 /// /// /// /// /// public T GetEntity(Expression> expression, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntity(expression, paths); } /// /// 查询实体 /// /// /// /// /// public T GetEntity(Expression> expression, BaseFilter fiter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntity(expression, fiter, paths); } /// /// 获取所有数据 /// /// /// /// /// /// public IEnumerable GetEntities(Expression> expression, BaseFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntities(expression, filter, paths); } /// /// 获取所有数据 /// /// 类型 /// 排序 /// lambd表达式 /// 过滤器 /// 需要关联查询的数据 /// public IEnumerable ActionOrderEntities(Action> orderBy, Expression> expression, BaseFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderEntities(expression, filter, orderBy, paths); } /// /// 获取所有数据 /// /// 类型 /// lambd表达式 /// 过滤器 /// 需要关联查询的数据 /// public IEnumerable GetOrderEntities(Expression> expression, BaseFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderEntities(expression, filter, paths); } /// /// 排序获取数据 /// /// /// /// /// /// /// /// public IEnumerable GetOrderEntities(Expression> expression, BaseFilter filter, string sort, string order, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderEntities(expression, filter, sort, order, paths); } /// /// 排序获取数据 /// /// /// /// /// /// /// /// public IEnumerable GetOrderEntities(Expression> expression, Dictionary orders, BaseFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderEntities(expression, filter, orders, paths); } ///// ///// 获取实体集合 ///// ///// ///// //public PagedActionResult GetPageEntities(CommonPageFilter filter) where T : MesEntityBase, new() //{ // _serviceLocator.RegisterType(typeof(CommonService), typeof(ICommonService)); // var commonService = _serviceLocator.GetService>(); // Expression> expression = t => true; // if (!string.IsNullOrEmpty(filter.Cid)) // expression.And(i => i.CID == filter.Cid); // var page = commonService.GetPagerIEnumerable(expression, filter.Start, filter.Limit); // return new PagedActionResult(page.Items, page.TotalCount); //} /// ///获取实体集合 /// /// /// /// /// /// public PagedActionResult GetPageEntities(Expression> expression, BasePageFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); filter.Sort = "ID"; var page = commonService.GetPageEntities(expression, filter, paths); return new PagedActionResult(page.Items, page.TotalCount); } public IEnumerable> GetTreeOrderEntities(Expression> expression, BaseFilter filter, params string[] paths) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetTreeOrderEntities(expression, filter, (!filter?.IsNoTranking) ?? true, paths); } /// ///获取排序的实体集合 /// /// /// /// /// /// public PagedActionResult ActionOrderPageEntities(Action> orderBy, Expression> expression, BasePageFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); var page = commonService.GetOrderPageEntities(expression, filter, null, 0, 0, orderBy, (!filter?.IsNoTranking) ?? true, paths); return new PagedActionResult(page.Items, page.TotalCount); } /// /// 分页查询 /// /// /// /// /// /// /// /// public PagedActionResult GetOrderPageEntities(Expression> expression, BasePageFilter pageFilter, string[] selectField, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); var page = commonService.GetOrderPageEntities(expression, pageFilter, selectField, paths); return new PagedActionResult(page.Items, page.TotalCount); } /// ///获取排序的实体集合 /// /// /// /// /// /// public PagedActionResult GetOrderPageEntities(Expression> expression, BasePageFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); var page = commonService.GetOrderPageEntities(expression, filter, paths); return new PagedActionResult(page.Items, page.TotalCount); } /// ///获取排序的实体集合 /// /// /// /// /// /// public async Task> ActionOrderPageEntitiesSync(Action> orderBy, Expression> expression, BasePageFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); var page = await commonService.GetOrderPageEntitiesSync(expression, filter, null, 0, 0, orderBy, (!filter?.IsNoTranking) ?? true, paths); return new PagedActionResult(page.Items, page.TotalCount); } /// ///获取排序的实体集合 /// /// /// /// /// /// public async Task> GetOrderPageEntitiesSync(Expression> expression, BasePageFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); var page = await commonService.GetOrderPageEntitiesSync(expression, filter, paths); return new PagedActionResult(page.Items, page.TotalCount); } #endregion #region notraking query /// /// 查询实体 /// /// /// /// /// public T GetEntity(string id, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntity(t => t.ID == new Guid(id), null, notraking, paths); } /// /// 查询实体 /// /// /// /// /// public T GetEntity(Expression> expression, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntity(expression, null, notraking, paths); } /// /// 查询实体 /// /// /// /// /// public T GetEntity(Expression> expression, BaseFilter fiter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntity(expression, fiter, notraking, paths); } public T GetEntityByRedis(string key, Guid orgid) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntityByRedis(key, orgid); } public T GetEntityByRedis(Guid key, Guid orgid) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntityByRedis(key, orgid); } public List GetEntitiesByRedis(BaseFilter filter) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntitiesByRedis(filter); } List GetEntitiesByGroupRedis(BaseFilter filter, string groupValue) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntitiesByGroupRedis(filter, groupValue); } public List GetEntitiesByRedis(Expression> expression, BaseFilter filter) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntitiesByRedis(expression, filter); } public List GetEntitiesByRedis(Expression> expression, BaseFilter filter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntitiesTableByRedis(expression, filter, paths); } public List GetEntitiesByRedis(Expression> expression, BaseFilter filter, string groupValue, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntitiesByRedis(expression, filter, groupValue, paths); } public PagedResultDto GetOrderPageByRedis(Expression> expression, BasePageFilter pageFilter, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderPageByRedis(expression, pageFilter, paths); } /// /// 获取所有数据 /// /// /// /// /// /// public IEnumerable GetEntities(Expression> expression, BaseFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetEntities(expression, filter, notraking, paths); } /// /// 获取所有数据 /// /// 类型 /// 排序 /// lambd表达式 /// 过滤器 /// 需要关联查询的数据 /// public IEnumerable ActionOrderEntities(Action> orderBy, Expression> expression, BaseFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderEntities(expression, filter, orderBy, notraking, paths); } /// /// 获取所有数据 /// /// 类型 /// 排序 /// lambd表达式 /// 过滤器 /// 需要关联查询的数据 /// public IEnumerable GetOrderEntities(Expression> expression, BaseFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderEntities(expression, filter, notraking, paths); } /// /// 排序获取数据 /// /// /// /// /// /// /// /// public IEnumerable GetOrderEntities(Expression> expression, string sort, string order, BaseFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); Dictionary orders = new Dictionary(); orders[sort] = order; return commonService.GetOrderEntities(expression, filter, orders, null, notraking, paths); } /// /// 排序获取数据 /// /// /// /// /// /// /// /// public IEnumerable GetOrderEntities(Expression> expression, Dictionary orders, BaseFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetOrderEntities(expression, filter, orders, null, notraking, paths); } /// ///获取实体集合 /// /// /// /// /// /// public async Task> GetPageEntitiesSync(Expression> expression, BasePageFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); filter.Sort = "ID"; var page = await commonService.GetOrderPageEntitiesSync(expression, filter, 0, 0, notraking, paths); return new PagedActionResult(page.Items, page.TotalCount); } /// ///获取排序的实体集合 /// /// /// /// /// /// public async Task> ActionOrderPageEntitiesSync(Action> orderBy, Expression> expression, BasePageFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); var page = await commonService.GetOrderPageEntitiesSync(expression, filter, null, 0, 0, orderBy, notraking, paths); return new PagedActionResult(page.Items, page.TotalCount); } /// ///获取排序的实体集合 /// /// /// /// /// /// public async Task> GetOrderPageEntitiesSync(Expression> expression, BasePageFilter filter, bool notraking = false, params string[] paths) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); var page = await commonService.GetOrderPageEntitiesSync(expression, filter, null, 0, 0, null, notraking, paths); return new PagedActionResult(page.Items, page.TotalCount); } #endregion /// /// 获取条数 /// /// /// /// /// public int GetCount(Expression> expression, BaseFilter filter) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.Count(expression, filter); } public bool IsAny(Expression> expression, BaseFilter filter) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.IsAny(expression, filter); } /// /// 添加实体 /// /// /// public bool AddEntity(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.AddEntity(entity); } /// /// 添加实体 /// /// /// public T AddAndGetEntity(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.AddAndGetEntity(entity); } /// /// 删除实体 /// /// /// public bool DeleteEntity(string id) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(new Guid(id)); } /// /// 删除实体 /// /// /// public bool DeleteEntity(Expression> expression) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(expression); } /// /// 删除实体 /// /// /// public bool DeleteEntity(IEnumerable entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(entity); } /// /// 删除实体 /// /// /// /// public bool DeleteEntity(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(entity); } /// /// 逻辑批量删除 /// /// /// /// public bool BantchDeleteEntity(List ids) where T : MesEntityBase, new() { if (ids == null || !ids.Any()) return false; var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(i => ids.Contains(i.ID)); } /// /// 删除实体 /// /// /// public bool RealDeleteEntity(Expression> expression) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(expression); } /// /// 删除实体 /// /// /// public bool RealDeleteEntity(IEnumerable entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(entity); } /// /// 删除实体 /// /// /// /// public bool RealDeleteEntity(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(entity); } /// /// 批量删除实体 /// /// id集合 /// public bool RealBantchDeleteEntity(List ids) where T : MesEntityBase, new() { if (ids == null || !ids.Any()) return false; var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity(i => ids.Contains(i.ID)); } /// /// 更新实体 /// /// /// public bool UpdateEntity(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.UpdateEntity(entity); } /// /// 按字段更新实体 /// /// /// public bool UpdateEntity(T entity, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.UpdateEntity(entity, updateField); } /// /// 批量添加实体 /// /// 实体集合 /// public bool BantchAddEntity(IEnumerable entities) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchAddEntity(entities); } /// /// 批量更新实体 /// /// 实体集 /// public bool BantchUpdateEntity(IEnumerable entities) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchUpdateEntity(entities); } /// /// 更具字段批量更新实体 /// /// 实体集 /// public bool BantchUpdateEntity(IEnumerable entities, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchUpdateEntity(entities, updateField); } /// /// 批量保存实体 /// /// 批量保存 /// public bool BantchSaveEntity(IEnumerable entities) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchSaveEntity(entities); } #region nocommit /// /// 添加实体 /// /// /// public bool AddEntityNoCommit(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.AddEntityNoCommit(entity); } /// /// 删除实体 /// /// /// public bool DeleteEntityNoCommit(string id) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntityNoCommit(new Guid(id)); } /// /// 删除实体 /// /// /// public bool DeleteEntityNoCommit(Expression> expression) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntityNoCommit(expression); } /// /// 删除实体 /// /// /// public bool DeleteEntityNoCommit(IEnumerable entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntityNoCommit(entity); } /// /// 删除实体 /// /// /// /// public bool DeleteEntityNoCommit(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntityNoCommit(entity); } /// /// 逻辑批量删除 /// /// /// /// public bool BantchDeleteEntityNoCommit(List ids) where T : MesEntityBase, new() { if (ids == null || !ids.Any()) return false; var commonService = _serviceLocator.GetService(); return commonService.DeleteEntityNoCommit(i => ids.Contains(i.ID)); } /// /// 更新实体 /// /// /// public bool UpdateEntityNoCommit(T entity) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.UpdateEntityNoCommit(entity); } /// /// 批量添加实体 /// /// 实体集合 /// public bool BantchAddEntityNoCommit(IEnumerable entities) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchAddEntityNoCommit(entities); } /// /// 更新实体 /// /// /// public bool UpdateEntityNoCommit(T entity, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.UpdateEntityNoCommit(entity, updateField); } /// /// 批量添加实体 /// /// 实体集合 /// public bool BantchUpdateEntityNoCommit(IEnumerable entities, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchUpdateEntityNoCommit(entities, updateField); } /// /// 批量更新实体 /// /// 实体集 /// public bool BantchUpdateEntityNoCommit(IEnumerable entities) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchUpdateEntityNoCommit(entities); } /// /// 批量保存实体 /// /// 批量保存 /// public bool BantchSaveEntityNoCommit(IEnumerable entities) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.BantchSaveEntityNoCommit(entities); } #region 根据连接更新数据 /// /// 根据数据库连接新增数据 /// /// /// 实体数据 /// 加密连接 public void AddEntityByConn(T entity, string conn) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.AddEntityByConn(entity, conn); } /// /// 根据数据库连接更新数据 /// /// /// 实体数据集合 /// 加密连接 public void UpdateEntitiesByConn(IEnumerable entities, string conn) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.UpdateEntitiesByConn(entities, conn); } /// /// 根据数据库连接更新数据 /// /// /// 实体数据 /// 加密连接 /// 更新字段 public void UpdateEntityByConn(T entity, string conn, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.UpdateEntityByConn(entity, conn, updateField); } /// /// 根据数据库连接删除数据 /// /// /// 表达式 /// 加密连接 public void DeleteEntityByConn(Expression> expression, string conn) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntityByConn(expression, conn); } /// /// 根据数据库连接删除数据 /// /// /// 数据实体 /// 加密连接 public void DeleteEntityByConn(T entity, string conn) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntityByConn(entity, conn); } /// /// 根据数据库连接删除数据 /// /// /// 主键 /// 加密连接 public void DeleteEntityByConn(Guid id, string conn) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntityByConn(id, conn); } /// /// 根据数据库连接删除数据 /// /// /// 数据集合 /// 加密连接 public void DeleteEntitiesByConn(IEnumerable entities, string conn) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntitiesByConn(entities, conn); } /// /// 根据数据库连接新增数据 /// /// /// 数据集合 /// 加密连接 public void AddEntitiesByConn(IEnumerable entities, string conn) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.AddEntitiesByConn(entities, conn); } /// /// 根据数据库连接新增数据 /// /// /// /// /// public void UpdateEntitiesByConn(IEnumerable entities, string conn, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.UpdateEntitiesByConn(entities, conn, updateField); } #endregion #region 根据租户更新数据 /// /// 根据数据库租户新增数据 /// /// /// 实体数据 /// 加密租户 public void AddEntityByTenant(T entity, string Tenant) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.AddEntityByTenant(entity, Tenant); } /// /// 根据数据库租户更新数据 /// /// /// 实体数据集合 /// 加密租户 public void UpdateEntitiesByTenant(IEnumerable entities, string Tenant) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.UpdateEntitiesByTenant(entities, Tenant); } /// /// 根据数据库租户更新数据 /// /// /// 实体数据 /// 加密租户 /// 更新字段 public void UpdateEntityByTenant(T entity, string Tenant, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.UpdateEntityByTenant(entity, Tenant, updateField); } /// /// 根据数据库租户删除数据 /// /// /// 表达式 /// 加密租户 public void DeleteEntityByTenant(Expression> expression, string Tenant) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntityByTenant(expression, Tenant); } /// /// 根据数据库租户删除数据 /// /// /// 数据实体 /// 加密租户 public void DeleteEntityByTenant(T entity, string Tenant) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntityByTenant(entity, Tenant); } /// /// 根据数据库租户删除数据 /// /// /// 主键 /// 加密租户 public void DeleteEntityByTenant(Guid id, string Tenant) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntityByTenant(id, Tenant); } /// /// 根据数据库租户删除数据 /// /// /// 数据集合 /// 加密租户 public void DeleteEntitiesByTenant(IEnumerable entities, string Tenant) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.DeleteEntitiesByTenant(entities, Tenant); } /// /// 根据数据库租户新增数据 /// /// /// 数据集合 /// 加密租户 public void AddEntitiesByTenant(IEnumerable entities, string Tenant) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.AddEntitiesByTenant(entities, Tenant); } /// /// 根据数据库租户新增数据 /// /// /// /// /// public void UpdateEntitiesByTenant(IEnumerable entities, string Tenant, params string[] updateField) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.UpdateEntitiesByTenant(entities, Tenant, updateField); } #endregion #region 树实体 /// /// 添加实体 /// /// /// public bool TreeAddEntityNoCommit(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeAddEntityNoCommit(entity); } /// /// 添加实体 /// /// /// public T TreeAddAndGetEntityNoCommit(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeAddAndGetEntityNoCommit(entity); } /// /// 删除实体 /// /// /// public bool TreeDeleteEntityNoCommit(string id) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(new Guid(id)); } /// /// 删除实体 /// /// /// public bool TreeDeleteEntityNoCommit(Expression> expression) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(expression); } /// /// 删除实体 /// /// /// public bool TreeDeleteEntityNoCommit(IEnumerable entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(entity); } /// /// 删除实体 /// /// /// /// public bool TreeDeleteEntityNoCommit(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(entity); } /// /// 逻辑批量删除 /// /// /// /// public bool TreeBantchDeleteEntityNoCommit(List ids) where T : TreeEntityBase, new() { if (ids == null || !ids.Any()) return false; var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(i => ids.Contains(i.ID)); } /// /// 删除实体 /// /// /// /// public bool TreeRealDeleteEntityNoCommit(string id) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(new Guid(id)); } /// /// 删除实体 /// /// /// public bool TreeRealDeleteEntityNoCommit(Expression> expression) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(expression); } /// /// 删除实体 /// /// /// public bool TreeRealDeleteEntityNoCommit(IEnumerable entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(entity); } /// /// 删除实体 /// /// /// /// public bool TreeRealDeleteEntityNoCommit(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(entity); } /// /// 批量删除实体 /// /// id集合 /// public bool TreeRealBantchDeleteEntityNoCommit(List ids) where T : TreeEntityBase, new() { if (ids == null || !ids.Any()) return false; var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntityNoCommit(i => ids.Contains(i.ID)); } /// /// 更新实体 /// /// /// public bool TreeUpdateEntityNoCommit(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeUpdateEntityNoCommit(entity); } /// /// 批量添加实体 /// /// 实体集合 /// public bool TreeBantchAddEntityNoCommit(IEnumerable entities) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeBantchAddEntityNoCommit(entities); } /// /// 批量更新实体 /// /// 实体集 /// public bool TreeBantchUpdateEntityNoCommit(IEnumerable entities) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeBantchUpdateEntityNoCommit(entities); } /// /// 批量保存实体 /// /// 批量保存 /// public bool TreeBantchSaveEntityNoCommit(IEnumerable entities) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeBantchSaveEntityNoCommit(entities); } #endregion #endregion #region 树实体 /// /// 添加实体 /// /// /// public bool TreeAddEntity(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeAddEntity(entity); } /// /// 添加实体 /// /// /// public T TreeAddAndGetEntity(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeAddAndGetEntity(entity); } /// /// 删除实体 /// /// /// public bool TreeDeleteEntity(string id) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(new Guid(id)); } /// /// 删除实体 /// /// /// public bool TreeDeleteEntity(Expression> expression) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(expression); } /// /// 删除实体 /// /// /// public bool TreeDeleteEntity(IEnumerable entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(entity); } /// /// 删除实体 /// /// /// /// public bool TreeDeleteEntity(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(entity); } /// /// 逻辑批量删除 /// /// /// /// public bool TreeBantchDeleteEntity(List ids) where T : TreeEntityBase, new() { if (ids == null || !ids.Any()) return false; var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(i => ids.Contains(i.ID)); } /// /// 删除实体 /// /// /// /// public bool TreeRealDeleteEntity(string id) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(new Guid(id)); } /// /// 删除实体 /// /// /// public bool TreeRealDeleteEntity(Expression> expression) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(expression); } /// /// 删除实体 /// /// /// public bool TreeRealDeleteEntity(IEnumerable entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(entity); } /// /// 删除实体 /// /// /// /// public bool TreeRealDeleteEntity(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(entity); } /// /// 批量删除实体 /// /// id集合 /// public bool TreeRealBantchDeleteEntity(List ids) where T : TreeEntityBase, new() { if (ids == null || !ids.Any()) return false; var commonService = _serviceLocator.GetService(); return commonService.TreeDeleteEntity(i => ids.Contains(i.ID)); } /// /// 更新实体 /// /// /// public bool TreeUpdateEntity(T entity) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeUpdateEntity(entity); } /// /// 批量添加实体 /// /// 实体集合 /// public bool TreeBantchAddEntity(IEnumerable entities) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeBantchAddEntity(entities); } /// /// 批量更新实体 /// /// 实体集 /// public bool TreeBantchUpdateEntity(IEnumerable entities) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeBantchUpdateEntity(entities); } /// /// 批量保存实体 /// /// 批量保存 /// public bool TreeBantchSaveEntity(IEnumerable entities) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.TreeBantchSaveEntity(entities); } /// /// 删除实体 /// /// /// public IEnumerable> TreeOrderEntities(Expression> expression, BaseFilter filter, bool isTracking, params string[] paths) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetTreeOrderEntities(expression, filter, isTracking, paths); } public IEnumerable GetTree(string id, bool containCurrent = true, BaseFilter filter = null, params string[] paths) where T : TreeEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetTree(id, containCurrent, filter, paths); } #endregion #region 执行SQL /// /// 对数据库执行给定的 DDL/DML 命令。 /// /// /// 用于创建服务的实例类型 /// 命令字符串 /// 参数 /// 受影响的行数 public int ExecuteSqlCommand(string sql, params object[] parameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.ExecuteSqlCommand(sql, parameters); } /// /// 对数据库执行给定的 DDL/DML 命令。 /// /// 用于创建服务的实例类型 /// 事务行为 /// 命令字符串 /// 参数 /// 受影响的行数 public int ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, string sql, params object[] parameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.ExecuteSqlCommand(transactionalBehavior, sql, parameters); } /// /// 对数据库执行给定的 DDL/DML 命令返回reader。 /// /// 用于创建服务的实例类型 /// 命令字符串 /// reader委托 public void ExecuteReader(string sql, ReaderColumn[] readerColumns, Action readerAction) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteReader(sql, readerColumns, readerAction); } /// /// 对数据库执行给定的 DDL/DML 命令返回reader。 /// /// 用于创建服务的实例类型 /// 命令字符串 /// 参数 /// reader委托 public void ExecuteReader(string sql, ReaderColumn[] readerColumns, DbParameter[] parameters, Action readerAction) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteReader(sql, readerColumns, parameters, readerAction); } /// /// 对数据库执行给定的 DDL/DML 命令返回reader。 /// /// 用于创建服务的实例类型 /// 命令类型 /// 命令字符串 /// 参数 /// reader委托 public void ExecuteReader(CommandType commandType, string sql, ReaderColumn[] readerColumns, DbParameter[] parameters, Action readerAction) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteReader(commandType, sql, readerColumns, parameters, readerAction); } /// /// 创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。 /// /// 查询所返回对象的类型 /// 用于创建服务的实例类型 /// SQL 查询字符串 /// 要应用于 SQL 查询字符串的参数 /// //public IEnumerable SqlQuery(string sql, params object[] parameters) where T : MesEntityBase, new() //{ // _serviceLocator.RegisterType(typeof(CommonService), typeof(ICommonService)); // var commonService = _serviceLocator.GetService>(); // return commonService.SqlQuery(sql, parameters); //} /// /// 创建一个原始 SQL 查询,该查询将返回给定类型的元素。 /// /// 用于创建服务的实例类型 /// 查询所返回对象的类型 /// SQL 查询字符串 /// 要应用于 SQL 查询字符串的参数 /// public IEnumerable SqlQuery(Type elementType, string sql, ReaderColumn[] readerColumns, params Object[] parameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.SqlQuery(elementType, sql, readerColumns, parameters); } /// /// 对数据库执行给定的 DDL/DML 命令。 /// /// 命令类型 /// 命令字符串 /// 参数 /// public int ExecuteNonQuery(CommandType commandType, string sql, ReaderColumn[] readerColumns, DbParameter[] parameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.ExecuteNonQuery(commandType, sql, readerColumns, parameters); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 public void ExecuteNonQueryByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteNonQueryByConn(dataBaseType, connString, commandType, sql, dbParameters); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 /// 执行委托 public void ExecuteReaderByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters, Action readerAction) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteReaderByConn(dataBaseType, connString, commandType, sql, dbParameters, readerAction); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 /// 分页索引 从1开始 /// 每页条数 必填 /// 执行委托 public void ExecuteReaderPageByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters, int pageIndex, int pageLimit, Action readerAction) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteReaderPageByConn(dataBaseType, connString, commandType, sql, dbParameters, pageIndex, pageLimit, readerAction); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取数据总条数。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 /// 数据总条数 public int GetSqlCountByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.GetSqlCountByConn(dataBaseType, connString, commandType, sql, dbParameters); } /// /// 获取数据库连接对象 /// /// 数据库类型 /// 连接字符串 public DbConnection InitDbConnection(DataBaseType dataBaseType, string connString) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.InitDbConnection(dataBaseType, connString); } /// /// 获取数据库连接对象 /// /// 数据库类型 /// 连接字符串 public DbConnection InitDbConnection(DataBaseType dataBaseType, string connString) { var commonService = _serviceLocator.GetService(); return commonService.InitDbConnection(dataBaseType, connString); } /// /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 public object ExecuteScalarByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.ExecuteScalarByConn(dataBaseType, connString, commandType, sql, dbParameters); } /// /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 public object ExecuteScalarByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters) { var commonService = _serviceLocator.GetService(); return commonService.ExecuteScalarByConn(dataBaseType, connString, commandType, sql, dbParameters); } /// /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。 /// /// 数据库类型 /// 数据库连接对象 /// sql 类型 /// sql /// 是否自动关闭连接 /// 参数 public object ExecuteScalarByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, bool close = true, params DbParameter[] dbParameters) { var commonService = _serviceLocator.GetService(); return commonService.ExecuteScalarByConn(dataBaseType, conn, commandType, sql, close, dbParameters); } /// /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。 /// /// 数据库类型 /// 数据库连接对象 /// sql 类型 /// sql /// 是否自动关闭连接 /// 参数 public object ExecuteScalarByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, bool close = true, params DbParameter[] dbParameters) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); return commonService.ExecuteScalarByConn(dataBaseType, conn, commandType, sql, close, dbParameters); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接对象 /// sql 类型 /// sql /// 参数 /// 分页索引 从1开始 /// 每页条数 必填 /// 执行委托 /// 是否自动关闭连接 public void ExecuteReaderPageByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, int pageIndex, int pageLimit, Action readerAction, bool close = true) { var commonService = _serviceLocator.GetService(); commonService.ExecuteReaderPageByConn(dataBaseType, conn, commandType, sql, dbParameters, pageIndex, pageLimit, readerAction, close); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接对象 /// sql 类型 /// sql /// 参数 /// 分页索引 从1开始 /// 每页条数 必填 /// 执行委托 /// 是否自动关闭连接 public void ExecuteReaderPageByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, int pageIndex, int pageLimit, Action readerAction, bool close = true) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteReaderPageByConn(dataBaseType, conn, commandType, sql, dbParameters, pageIndex, pageLimit, readerAction, close); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接对象 /// 指令类型 /// SQL语句 /// 参数 /// 委托 /// 是否自动关闭连接 public void ExecuteReaderByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, Action readerAction, bool close = true) where T : MesEntityBase, new() { var commonService = _serviceLocator.GetService(); commonService.ExecuteReaderByConn(dataBaseType, conn, commandType, sql, dbParameters, readerAction); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接对象 /// 指令类型 /// SQL语句 /// 参数 /// 委托 /// 是否自动关闭连接 public void ExecuteReaderByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, Action readerAction, bool close = true) { var commonService = _serviceLocator.GetService(); commonService.ExecuteReaderByConn(dataBaseType, conn, commandType, sql, dbParameters, readerAction); } /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接对象 /// 指令类型 /// SQL语句 /// 参数 /// 委托 /// 是否自动关闭连接 public void ExecuteNonQueryByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, bool close = true) { var commonService = _serviceLocator.GetService(); commonService.ExecuteNonQueryByConn(dataBaseType, conn, commandType, sql, dbParameters, close); } public T AddAndGetEntity_noneBase(T entity) where T : class { var commonService = _serviceLocator.GetService(); return commonService.AddAndGetEntity_noneBase(entity); } public void BantchAddEntity_noneBase(IEnumerable entities) where T : class { var commonService = _serviceLocator.GetService(); commonService.AddEntities_noneBase(entities); } public void BantchUpdateEntity_noneBase(IEnumerable entities) where T : class { var commonService = _serviceLocator.GetService(); commonService.UpdateEntities_noneBase(entities); } public T GetEntity_noneBase(Expression> expressions) where T : class { var commonService = _serviceLocator.GetService(); return commonService.GetEntity_noneBase(expressions); } public List GetEntities_noneBase(Expression> expressions) where T : class { var commonService = _serviceLocator.GetService(); return commonService.GetEntities_noneBase(expressions); } public bool DeleteEntity_noneBase(Expression> expression) where T : class { var commonService = _serviceLocator.GetService(); return commonService.DeleteEntity_noneBase(expression); } #endregion } }