mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 增加 ToList<Dto>() 方法,作用与 ToList(a => new Dto()) 相同;
This commit is contained in:
parent
e63eb42da6
commit
c293a1fb37
@ -149,11 +149,13 @@ namespace FreeSql.Tests.MySql {
|
|||||||
var testDto2 = select.Limit(10).ToList(a => new TestDto());
|
var testDto2 = select.Limit(10).ToList(a => new TestDto());
|
||||||
var testDto3 = select.Limit(10).ToList(a => new TestDto { });
|
var testDto3 = select.Limit(10).ToList(a => new TestDto { });
|
||||||
var testDto4 = select.Limit(10).ToList(a => new TestDto() { });
|
var testDto4 = select.Limit(10).ToList(a => new TestDto() { });
|
||||||
|
var testDto5 = select.Limit(10).ToList<TestDto>();
|
||||||
|
|
||||||
var testDto11 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto { id = a.Id, name = a.Title });
|
var testDto11 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto { id = a.Id, name = a.Title });
|
||||||
var testDto22 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto());
|
var testDto22 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto());
|
||||||
var testDto33 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto { });
|
var testDto33 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto { });
|
||||||
var testDto44 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto() { });
|
var testDto44 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto() { });
|
||||||
|
var testDto55 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList<TestDto>();
|
||||||
|
|
||||||
var t0 = select.Limit(50).ToList();
|
var t0 = select.Limit(50).ToList();
|
||||||
|
|
||||||
|
@ -988,6 +988,13 @@
|
|||||||
<param name="select">选择列</param>
|
<param name="select">选择列</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSql.ISelect`1.ToList``1">
|
||||||
|
<summary>
|
||||||
|
执行SQL查询,返回 TDto 映射的字段,记录不存在时返回 Count 为 0 的列表
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDto"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.ISelect`1.ToOne``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
|
<member name="M:FreeSql.ISelect`1.ToOne``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
|
||||||
<summary>
|
<summary>
|
||||||
执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值
|
执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值
|
||||||
|
@ -30,6 +30,13 @@ namespace FreeSql {
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, TReturn>> select);
|
||||||
|
/// <summary>
|
||||||
|
/// 执行SQL查询,返回 TDto 映射的字段,记录不存在时返回 Count 为 0 的列表
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDto"></typeparam>
|
||||||
|
/// <returns></returns>
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值
|
/// 执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, ISelectGroupingAggregate<T10>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, ISelectGroupingAggregate<T10>, TReturn>> select);
|
||||||
|
@ -15,6 +15,9 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<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);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
|
|
||||||
string ToSql<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);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, TReturn>> select);
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, TReturn>> select);
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, TReturn>> select);
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, TReturn>> select);
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, TReturn>> select);
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, TReturn>> select);
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, TReturn>> select);
|
||||||
|
@ -15,6 +15,8 @@ namespace FreeSql {
|
|||||||
|
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
||||||
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
||||||
|
List<TDto> ToList<TDto>();
|
||||||
|
Task<List<TDto>> ToListAsync<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
||||||
|
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, TReturn>> select);
|
||||||
|
@ -115,12 +115,27 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToList<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"),
|
||||||
|
Expression.Parameter(typeof(T4), "d"),
|
||||||
|
Expression.Parameter(typeof(T5), "e"),
|
||||||
|
Expression.Parameter(typeof(T6), "f"),
|
||||||
|
Expression.Parameter(typeof(T7), "g"),
|
||||||
|
Expression.Parameter(typeof(T8), "h"),
|
||||||
|
Expression.Parameter(typeof(T9), "i"),
|
||||||
|
Expression.Parameter(typeof(T10), "j"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select) {
|
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -147,13 +147,20 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
_tables[0].Parameter = select.Parameters[0];
|
_tables[0].Parameter = select.Parameters[0];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, TReturn>> select) {
|
public Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
_tables[0].Parameter = select.Parameters[0];
|
_tables[0].Parameter = select.Parameters[0];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1>.ToList<TDto>() => ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1>.ToListAsync<TDto>() => ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#region linq to sql
|
||||||
public ISelect<TReturn> Select<TReturn>(Expression<Func<T1, TReturn>> select) where TReturn : class {
|
public ISelect<TReturn> Select<TReturn>(Expression<Func<T1, TReturn>> select) where TReturn : class {
|
||||||
if (typeof(TReturn) == typeof(T1)) return this as ISelect<TReturn>;
|
if (typeof(TReturn) == typeof(T1)) return this as ISelect<TReturn>;
|
||||||
_tables[0].Parameter = select.Parameters[0];
|
_tables[0].Parameter = select.Parameters[0];
|
||||||
@ -217,6 +224,7 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
public ISelect<T1> DefaultIfEmpty() {
|
public ISelect<T1> DefaultIfEmpty() {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
public DataTable ToDataTable<TReturn>(Expression<Func<T1, TReturn>> select) {
|
public DataTable ToDataTable<TReturn>(Expression<Func<T1, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -99,12 +99,19 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2>.ToListAsync<TReturn>(Expression<Func<T1, T2, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2>.ToListAsync<TReturn>(Expression<Func<T1, T2, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2>.ToList<TDto>() => (this as ISelect<T1, T2>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2>.ToListAsync<TDto>() => (this as ISelect<T1, T2>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2>.ToDataTable<TReturn>(Expression<Func<T1, T2, TReturn>> select) {
|
DataTable ISelect<T1, T2>.ToDataTable<TReturn>(Expression<Func<T1, T2, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -101,12 +101,20 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3>.ToList<TDto>() => (this as ISelect<T1, T2, T3>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2, T3>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select) {
|
DataTable ISelect<T1, T2, T3>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -97,12 +97,21 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToAggregateAsync<TReturn>(select?.Body);
|
return this.InternalToAggregateAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<TReturn> ISelect<T1, T2, T3, T4>.ToList<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select) {
|
List<TReturn> ISelect<T1, T2, T3, T4>.ToList<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToList<TReturn>(select?.Body);
|
if (select == null) return this.InternalToList<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3, T4>.ToList<TDto>() => (this as ISelect<T1, T2, T3, T4>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3, T4>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3, T4>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, T4, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, T4, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"),
|
||||||
|
Expression.Parameter(typeof(T4), "d"));
|
||||||
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3, T4>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3, T4>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
|
@ -105,12 +105,22 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3, T4, T5>.ToList<TDto>() => (this as ISelect<T1, T2, T3, T4, T5>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3, T4, T5>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3, T4, T5>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, T4, T5, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, T4, T5, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"),
|
||||||
|
Expression.Parameter(typeof(T4), "d"),
|
||||||
|
Expression.Parameter(typeof(T5), "e"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2, T3, T4, T5>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select) {
|
DataTable ISelect<T1, T2, T3, T4, T5>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -107,12 +107,23 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3, T4, T5, T6>.ToList<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3, T4, T5, T6>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, T4, T5, T6, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, T4, T5, T6, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"),
|
||||||
|
Expression.Parameter(typeof(T4), "d"),
|
||||||
|
Expression.Parameter(typeof(T5), "e"),
|
||||||
|
Expression.Parameter(typeof(T6), "f"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2, T3, T4, T5, T6>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select) {
|
DataTable ISelect<T1, T2, T3, T4, T5, T6>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -109,12 +109,24 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3, T4, T5, T6, T7>.ToList<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3, T4, T5, T6, T7>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, T4, T5, T6, T7, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, T4, T5, T6, T7, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"),
|
||||||
|
Expression.Parameter(typeof(T4), "d"),
|
||||||
|
Expression.Parameter(typeof(T5), "e"),
|
||||||
|
Expression.Parameter(typeof(T6), "f"),
|
||||||
|
Expression.Parameter(typeof(T7), "g"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select) {
|
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -111,12 +111,25 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToList<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7, T8>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7, T8>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, T4, T5, T6, T7, T8, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"),
|
||||||
|
Expression.Parameter(typeof(T4), "d"),
|
||||||
|
Expression.Parameter(typeof(T5), "e"),
|
||||||
|
Expression.Parameter(typeof(T6), "f"),
|
||||||
|
Expression.Parameter(typeof(T7), "g"),
|
||||||
|
Expression.Parameter(typeof(T8), "h"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select) {
|
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
@ -113,12 +113,26 @@ namespace FreeSql.Internal.CommonProvider {
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToList<TReturn>(select?.Body);
|
return this.InternalToList<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select) {
|
Task<List<TReturn>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToListAsync<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToListAsync<TReturn>(select?.Body);
|
return this.InternalToListAsync<TReturn>(select?.Body);
|
||||||
}
|
}
|
||||||
|
List<TDto> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToList<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>).ToList(GetToListDtoSelector<TDto>());
|
||||||
|
Task<List<TDto>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToListAsync<TDto>() => (this as ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>).ToListAsync(GetToListDtoSelector<TDto>());
|
||||||
|
Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TDto>> GetToListDtoSelector<TDto>() {
|
||||||
|
var ctor = typeof(TDto).GetConstructor(new Type[0]);
|
||||||
|
return Expression.Lambda<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TDto>>(Expression.New(ctor),
|
||||||
|
_tables[0].Parameter ?? Expression.Parameter(typeof(T1), "a"),
|
||||||
|
Expression.Parameter(typeof(T2), "b"),
|
||||||
|
Expression.Parameter(typeof(T3), "c"),
|
||||||
|
Expression.Parameter(typeof(T4), "d"),
|
||||||
|
Expression.Parameter(typeof(T5), "e"),
|
||||||
|
Expression.Parameter(typeof(T6), "f"),
|
||||||
|
Expression.Parameter(typeof(T7), "g"),
|
||||||
|
Expression.Parameter(typeof(T8), "h"),
|
||||||
|
Expression.Parameter(typeof(T9), "i"));
|
||||||
|
}
|
||||||
|
|
||||||
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select) {
|
DataTable ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select) {
|
||||||
if (select == null) return this.InternalToDataTable(select?.Body);
|
if (select == null) return this.InternalToDataTable(select?.Body);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user