mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
## v0.4.16
- 增加 ISelect.AsType 实现弱类型查询,配合 Select<object>().AsType(实体类型); - 补充 ISelect.From<T2>; - 补充 ExpressionTree 单元测试; - 优化 ToList(a => new Dto()),会按优先级查询 Join 实体属性;
This commit is contained in:
@ -71,6 +71,12 @@ namespace FreeSql {
|
||||
/// <returns></returns>
|
||||
TSelect AsTable(Func<Type, string, string> tableRule);
|
||||
/// <summary>
|
||||
/// 动态Type,在使用 Select<object> 后使用本方法,指定实体类型
|
||||
/// </summary>
|
||||
/// <param name="entityType"></param>
|
||||
/// <returns></returns>
|
||||
TSelect AsType(Type entityType);
|
||||
/// <summary>
|
||||
/// 返回即将执行的SQL语句
|
||||
/// </summary>
|
||||
/// <param name="field">指定字段</param>
|
||||
|
@ -106,6 +106,13 @@ namespace FreeSql {
|
||||
/// <returns></returns>
|
||||
ISelect<T1> As(string alias = "a");
|
||||
|
||||
/// <summary>
|
||||
/// 多表查询
|
||||
/// </summary>
|
||||
/// <typeparam name="T2"></typeparam>
|
||||
/// <param name="exp"></param>
|
||||
/// <returns></returns>
|
||||
ISelect<T1, T2> From<T2>(Expression<Func<ISelectFromExpression<T1>, T2, ISelectFromExpression<T1>>> exp) where T2 : class;
|
||||
/// <summary>
|
||||
/// 多表查询
|
||||
/// </summary>
|
||||
|
40
FreeSql/Interface/Curd/ISelect/ISelect2.cs
Normal file
40
FreeSql/Interface/Curd/ISelect/ISelect2.cs
Normal file
@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FreeSql {
|
||||
public interface ISelect<T1, T2> : ISelect0<ISelect<T1, T2>, T1> where T1 : class where T2 : class {
|
||||
|
||||
bool Any(Expression<Func<T1, T2, bool>> exp);
|
||||
Task<bool> AnyAsync(Expression<Func<T1, T2, bool>> exp);
|
||||
|
||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||
Task<DataTable> ToDataTableAsync<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, TReturn>> select);
|
||||
Task<TReturn> ToAggregateAsync<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
Task<TMember> SumAsync<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
Task<TMember> MinAsync<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
TMember Max<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
Task<TMember> MaxAsync<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
TMember Avg<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
Task<TMember> AvgAsync<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
|
||||
ISelect<T1, T2> Where(Expression<Func<T1, T2, bool>> exp);
|
||||
ISelect<T1, T2> WhereIf(bool condition, Expression<Func<T1, T2, bool>> exp);
|
||||
|
||||
ISelectGrouping<TKey> GroupBy<TKey>(Expression<Func<T1, T2, TKey>> exp);
|
||||
|
||||
ISelect<T1, T2> OrderBy<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
ISelect<T1, T2> OrderByDescending<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user