public List <T2> ProjectTo <T2>(Expression <Func <T, T2> > projectionExpression) { var types = new[] { typeof(T) }.Concat(_joinSqlExpressions.Values.Select(x => x.Type)).ToArray(); var sql = _buildComplexSql.GetSqlForProjection(projectionExpression, types, false); return(_database.Query <T>(types, null, sql).Select(projectionExpression.Compile()).ToList()); }
public List <T2> ProjectTo <T2>(Expression <Func <T, T2> > projectionExpression) { var sql = _buildComplexSql.GetSqlForProjection(projectionExpression, false); return(ExecuteQuery(sql).Select(projectionExpression.Compile()).ToList()); }
public async Task <List <T2> > ProjectTo <T2>(Expression <Func <T, T2> > projectionExpression) { var sql = _buildComplexSql.GetSqlForProjection(projectionExpression, false); return((await _database.QueryAsync <T>(sql).ConfigureAwait(false)).Select(projectionExpression.Compile()).ToList()); }