mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 增加 ToList<Dto>() 方法,作用与 ToList(a => new Dto()) 相同;
This commit is contained in:
		@@ -115,12 +115,27 @@ namespace FreeSql.Internal.CommonProvider {
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToDataTable(select?.Body);
 | 
			
		||||
 
 | 
			
		||||
@@ -147,13 +147,20 @@ namespace FreeSql.Internal.CommonProvider {
 | 
			
		||||
			_tables[0].Parameter = select.Parameters[0];
 | 
			
		||||
			return this.InternalToList<TReturn>(select?.Body);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public Task<List<TReturn>> ToListAsync<TReturn>(Expression<Func<T1, TReturn>> select) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			_tables[0].Parameter = select.Parameters[0];
 | 
			
		||||
			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 {
 | 
			
		||||
			if (typeof(TReturn) == typeof(T1)) return this as ISelect<TReturn>;
 | 
			
		||||
			_tables[0].Parameter = select.Parameters[0];
 | 
			
		||||
@@ -217,6 +224,7 @@ namespace FreeSql.Internal.CommonProvider {
 | 
			
		||||
		public ISelect<T1> DefaultIfEmpty() {
 | 
			
		||||
			return this;
 | 
			
		||||
		}
 | 
			
		||||
		#endregion
 | 
			
		||||
 | 
			
		||||
		public DataTable ToDataTable<TReturn>(Expression<Func<T1, TReturn>> select) {
 | 
			
		||||
			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];
 | 
			
		||||
			return this.InternalToList<TReturn>(select?.Body);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		Task<List<TReturn>> ISelect<T1, T2>.ToListAsync<TReturn>(Expression<Func<T1, T2, TReturn>> select) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			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];
 | 
			
		||||
			return this.InternalToList<TReturn>(select?.Body);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		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);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			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];
 | 
			
		||||
			return this.InternalToAggregateAsync<TReturn>(select?.Body);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		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);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			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];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			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];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			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];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			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];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			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];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToListAsync<TReturn>(select?.Body);
 | 
			
		||||
			for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
 | 
			
		||||
			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) {
 | 
			
		||||
			if (select == null) return this.InternalToDataTable(select?.Body);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user