using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class { #if net40 #else Task AnyAsync(Expression> exp); Task InsertIntoAsync(string tableName, Expression> select) where TTargetEntity : class; Task ToDataTableAsync(Expression> select); Task> ToListAsync(Expression> select); Task> ToListAsync(); Task ToOneAsync(Expression> select); Task FirstAsync(Expression> select); Task FirstAsync(); Task ToAggregateAsync(Expression, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, TReturn>> select); Task SumAsync(Expression> column); Task MinAsync(Expression> column); Task MaxAsync(Expression> column); Task AvgAsync(Expression> column); #region HzyTuple 元组 Task AnyAsync(Expression, bool>> exp); Task InsertIntoAsync(string tableName, Expression, TTargetEntity>> select) where TTargetEntity : class; Task ToDataTableAsync(Expression, TReturn>> select); Task> ToListAsync(Expression, TReturn>> select); Task ToOneAsync(Expression, TReturn>> select); Task FirstAsync(Expression, TReturn>> select); Task SumAsync(Expression, TMember>> column); Task MinAsync(Expression, TMember>> column); Task MaxAsync(Expression, TMember>> column); Task AvgAsync(Expression, TMember>> column); #endregion #endif bool Any(Expression> exp); int InsertInto(string tableName, Expression> select) where TTargetEntity : class; DataTable ToDataTable(Expression> select); List ToList(Expression> select); List ToList(); void ToChunk(Expression> select, int size, Action>> done); TReturn ToOne(Expression> select); TReturn First(Expression> select); TDto First(); string ToSql(Expression> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex); TReturn ToAggregate(Expression, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, TReturn>> select); ISelect Aggregate(Expression, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, ISelectGroupingAggregate, TReturn>> select, out TReturn result); decimal Sum(Expression> column); TMember Min(Expression> column); TMember Max(Expression> column); double Avg(Expression> column); ISelect LeftJoin(Expression> exp); ISelect InnerJoin(Expression> exp); ISelect RightJoin(Expression> exp); ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); ISelect OrderByIf(bool condition, Expression> column, bool descending = false); ISelect WithSql(string sqlT1, string sqlT2, string sqlT3, string sqlT4, string sqlT5, string sqlT6, object parms = null); #region HzyTuple 元组 bool Any(Expression, bool>> exp); int InsertInto(string tableName, Expression, TTargetEntity>> select) where TTargetEntity : class; DataTable ToDataTable(Expression, TReturn>> select); List ToList(Expression, TReturn>> select); void ToChunk(Expression, TReturn>> select, int size, Action>> done); TReturn ToOne(Expression, TReturn>> select); TReturn First(Expression, TReturn>> select); string ToSql(Expression, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex); decimal Sum(Expression, TMember>> column); TMember Min(Expression, TMember>> column); TMember Max(Expression, TMember>> column); double Avg(Expression, TMember>> column); ISelect LeftJoin(Expression, bool>> exp); ISelect InnerJoin(Expression, bool>> exp); ISelect RightJoin(Expression, bool>> exp); ISelect Where(Expression, bool>> exp); ISelect WhereIf(bool condition, Expression, bool>> exp); ISelectGrouping> GroupBy(Expression, TKey>> exp); ISelect OrderBy(Expression, TMember>> column); ISelect OrderByDescending(Expression, TMember>> column); ISelect OrderByIf(bool condition, Expression, TMember>> column, bool descending = false); #endregion } }