using System; using System.Collections.Generic; using System.Data; using System.Dynamic; using System.Linq.Expressions; using System.Reflection; using System.Threading.Tasks; namespace SqlSugar { public interface ISqlSugarClient : IDisposable { MappingTableList MappingTables { get; set; } MappingColumnList MappingColumns { get; set; } IgnoreColumnList IgnoreColumns { get; set; } IgnoreColumnList IgnoreInsertColumns { get; set; } Dictionary TempItems { get; set; } ConfigQuery ConfigQuery { get; set; } bool IsSystemTablesConfig { get; } Guid ContextID { get; set; } ConnectionConfig CurrentConnectionConfig { get; set; } IAdo Ado { get; } AopProvider Aop { get; } ICodeFirst CodeFirst { get; } IDbFirst DbFirst { get; } IDbMaintenance DbMaintenance { get; } EntityMaintenance EntityMaintenance { get; set; } QueryFilterProvider QueryFilter { get; set; } IContextMethods Utilities { get; set; } SugarActionType SugarActionType { get; set; } #region Deleteable DeleteMethodInfo DeleteableByObject(object singleEntityObjectOrListObject); IDeleteable Deleteable() where T : class, new(); IDeleteable Deleteable(dynamic primaryKeyValue) where T : class, new(); IDeleteable Deleteable(dynamic[] primaryKeyValues) where T : class, new(); IDeleteable Deleteable(Expression> expression) where T : class, new(); IDeleteable Deleteable(List pkValue) where T : class, new(); IDeleteable Deleteable(List deleteObjs) where T : class, new(); IDeleteable Deleteable(T deleteObj) where T : class, new(); #endregion #region Other methods Task AsyncLock(int timeOutSeconds = 30); DynamicBuilder DynamicBuilder(); void ClearTracking(); void Tracking(T data) where T : class, new(); void Tracking(List data) where T : class, new(); SqlSugarClient CopyNew(); T CreateContext(bool isTran=true) where T : SugarUnitOfWork, new(); SugarUnitOfWork CreateContext(bool isTran = true); SplitTableContext SplitHelper(Type entityType); SplitTableContext SplitHelper() where T : class, new(); SplitTableContextResult SplitHelper(T data) where T : class, new(); SplitTableContextResult SplitHelper(List data) where T : class, new(); DateTime GetDate(); //SimpleClient GetSimpleClient(); SimpleClient GetSimpleClient() where T : class, new(); RepositoryType GetRepository() where RepositoryType : ISugarRepository, new(); void InitMappingInfo(Type type); void InitMappingInfo(); void Open(); void Close(); ITenant AsTenant(); #endregion #region Insertable IInsertable Insertable(Dictionary columnDictionary) where T : class, new(); IInsertable Insertable(dynamic insertDynamicObject) where T : class, new(); IInsertable Insertable(List insertObjs) where T : class, new(); IInsertable Insertable(T insertObj) where T : class, new(); IInsertable Insertable(T[] insertObjs) where T : class, new(); InsertMethodInfo InsertableByObject(object singleEntityObjectOrListObject); IInsertable> InsertableByDynamic(object insertDynamicObject); #endregion #region Queryable QueryMethodInfo QueryableByObject(Type entityType, string shortName); QueryMethodInfo QueryableByObject(Type entityType); ISugarQueryable MasterQueryable(); ISugarQueryable SlaveQueryable(); ISugarQueryable SqlQueryable(string sql) where T : class, new(); ISugarQueryable Queryable(string tableName, string shortName); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression) where T : class, new(); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(Expression> joinExpression); ISugarQueryable Queryable(ISugarQueryable joinQueryable1, ISugarQueryable joinQueryable2, Expression> joinExpression) where T : class, new() where T2 : class, new(); ISugarQueryable Queryable(ISugarQueryable joinQueryable1, ISugarQueryable joinQueryable2, JoinType joinType, Expression> joinExpression) where T : class, new() where T2 : class, new(); ISugarQueryable Queryable(ISugarQueryable joinQueryable1, ISugarQueryable joinQueryable2, ISugarQueryable joinQueryable3, JoinType joinType1, Expression> joinExpression1, JoinType joinType2, Expression> joinExpression2) where T : class, new() where T2 : class, new() where T3 : class, new(); ISugarQueryable Queryable(ISugarQueryable joinQueryable1, ISugarQueryable joinQueryable2, ISugarQueryable joinQueryable3, ISugarQueryable joinQueryable4, JoinType joinType1, Expression> joinExpression1, JoinType joinType2, Expression> joinExpression2, JoinType joinType3, Expression> joinExpression4) where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new(); ISugarQueryable Queryable(); ISugarQueryable Queryable(ISugarQueryable queryable); ISugarQueryable Queryable(ISugarQueryable queryable,string shortName); ISugarQueryable Queryable(string shortName); #endregion #region Saveable GridSaveProvider GridSave(List saveList) where T : class, new(); GridSaveProvider GridSave(List oldList,List saveList) where T : class, new(); IStorageable Storageable(T[] dataList) where T : class, new(); IStorageable Storageable(IList dataList) where T : class, new(); StorageableDataTable Storageable(List> dictionaryList, string tableName); StorageableDataTable Storageable(Dictionary dictionary, string tableName); IStorageable Storageable(List dataList) where T : class, new(); IStorageable Storageable(T data) where T : class, new(); StorageableDataTable Storageable(DataTable data); [Obsolete("use Storageable")] ISaveable Saveable(List saveObjects) where T : class, new(); [Obsolete("use Storageable")] ISaveable Saveable(T saveObject) where T : class, new(); StorageableMethodInfo StorageableByObject(object singleEntityObjectOrListObject); #endregion #region Queue QueueList Queues { get; set; } void AddQueue(string sql, object parsmeters = null); void AddQueue(string sql, List parsmeters); void AddQueue(string sql, SugarParameter parsmeter); int SaveQueues(bool isTran = true); Tuple, List, List, List, List, List, List> SaveQueues(bool isTran = true); Tuple, List, List, List, List, List> SaveQueues(bool isTran = true); Tuple, List, List, List, List> SaveQueues(bool isTran = true); Tuple, List, List, List> SaveQueues(bool isTran = true); Tuple, List, List> SaveQueues(bool isTran = true); Tuple, List> SaveQueues(bool isTran = true); List SaveQueues(bool isTran = true); Task SaveQueuesAsync(bool isTran = true); Task, List, List, List, List, List, List>> SaveQueuesAsync(bool isTran = true); Task, List, List, List, List, List>> SaveQueuesAsync(bool isTran = true); Task, List, List, List, List>> SaveQueuesAsync(bool isTran = true); Task, List, List, List>> SaveQueuesAsync(bool isTran = true); Task, List, List>> SaveQueuesAsync(bool isTran = true); Task, List>> SaveQueuesAsync(bool isTran = true); Task> SaveQueuesAsync(bool isTran = true); #endregion #region Union ISugarQueryable Union(List> queryables) where T : class; ISugarQueryable Union(params ISugarQueryable[] queryables) where T : class; ISugarQueryable UnionAll(List> queryables) where T : class; ISugarQueryable UnionAll(params ISugarQueryable[] queryables) where T : class; #endregion #region Updateable UpdateMethodInfo UpdateableByObject(object singleEntityObjectOrListObject); UpdateExpressionMethodInfo UpdateableByObject(Type entityType); IUpdateable Updateable() where T : class, new(); IUpdateable Updateable(Dictionary columnDictionary) where T : class, new(); IUpdateable Updateable(dynamic updateDynamicObject) where T : class, new(); IUpdateable Updateable(Expression> columns) where T : class, new(); IUpdateable Updateable(Expression> columns) where T : class, new(); IUpdateable Updateable(List UpdateObjs) where T : class, new(); IUpdateable Updateable(T UpdateObj) where T : class, new(); IUpdateable Updateable(T[] UpdateObjs) where T : class, new(); IUpdateable> UpdateableByDynamic(object updateDynamicObject); #endregion #region Reportable IReportable Reportable(T data); IReportable Reportable(List list); IReportable Reportable(T[] array); #endregion #region Cache SugarCacheProvider DataCache { get; } #endregion #region Fastest IFastest Fastest() where T : class, new(); #endregion #region ThenMapper void ThenMapper(IEnumerable list, Action action); Task ThenMapperAsync(IEnumerable list, Func action); #endregion #region Nav CUD InsertNavTaskInit InsertNav(T data) where T : class, new(); InsertNavTaskInit InsertNav(List datas) where T : class, new(); InsertNavTaskInit InsertNav(T data,InsertNavRootOptions rootOptions) where T : class, new(); InsertNavTaskInit InsertNav(List datas, InsertNavRootOptions rootOptions) where T : class, new(); DeleteNavTaskInit DeleteNav(T data) where T : class, new(); DeleteNavTaskInit DeleteNav(List datas) where T : class, new(); DeleteNavTaskInit DeleteNav(Expression> whereExpression) where T : class, new(); DeleteNavTaskInit DeleteNav(T data, DeleteNavRootOptions options) where T : class, new(); DeleteNavTaskInit DeleteNav(List datas, DeleteNavRootOptions options) where T : class, new(); DeleteNavTaskInit DeleteNav(Expression> whereExpression, DeleteNavRootOptions options) where T : class, new(); UpdateNavTaskInit UpdateNav(T data) where T : class, new (); UpdateNavTaskInit UpdateNav(List datas) where T : class, new (); UpdateNavTaskInit UpdateNav(T data,UpdateNavRootOptions rootOptions) where T : class, new(); UpdateNavTaskInit UpdateNav(List datas, UpdateNavRootOptions rootOptions) where T : class, new(); #endregion } }