mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Add Queryable. Select(exp,true)
This commit is contained in:
parent
a3e182fb4c
commit
6bda78f3df
@ -9,6 +9,7 @@ using System.Text.RegularExpressions;
|
||||
using System.Reflection;
|
||||
using System.Dynamic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
@ -877,6 +878,21 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#region Other
|
||||
protected string AppendSelect<EntityType>(string sql, ReadOnlyCollection<ParameterExpression> parameters, List<EntityColumnInfo> columnsResult, int parameterIndex1)
|
||||
{
|
||||
var columns = this.Context.EntityMaintenance.GetEntityInfo<EntityType>().Columns;
|
||||
var parameterName = parameters[parameterIndex1];
|
||||
foreach (var item in columns)
|
||||
{
|
||||
if (item.IsIgnore == false && columnsResult.Any(it => it.PropertyName == item.PropertyName) && !sql.Contains(SqlBuilder.GetTranslationColumnName(item.PropertyName)))
|
||||
{
|
||||
sql = $" {sql},{parameterName.Name}.{item.DbColumnName} AS {item.PropertyName} ";
|
||||
}
|
||||
}
|
||||
|
||||
return sql;
|
||||
}
|
||||
|
||||
protected JoinQueryInfo GetJoinInfo(Expression joinExpression, JoinType joinType)
|
||||
{
|
||||
QueryBuilder.CheckExpressionNew(joinExpression, "Join");
|
||||
|
@ -9,6 +9,7 @@ using System.Text.RegularExpressions;
|
||||
using System.Reflection;
|
||||
using System.Dynamic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
@ -192,7 +193,19 @@ namespace SqlSugar
|
||||
{
|
||||
return _Select<TResult>(expression);
|
||||
}
|
||||
|
||||
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T,T2, TResult>> expression, bool isAutoFill)
|
||||
{
|
||||
var sql = this.Clone().Select(expression).QueryBuilder.GetSelectValue;
|
||||
if (this.QueryBuilder.IsSingle() || string.IsNullOrEmpty(sql) || sql.Trim() == "*")
|
||||
{
|
||||
return this.Select<TResult>(expression);
|
||||
}
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
var columnsResult = this.Context.EntityMaintenance.GetEntityInfo<TResult>().Columns;
|
||||
sql = AppendSelect<T>(sql, parameters, columnsResult, 0);
|
||||
sql = AppendSelect<T2>(sql, parameters, columnsResult, 1);
|
||||
return this.Select<TResult>(sql);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Order
|
||||
|
@ -254,6 +254,7 @@ namespace SqlSugar
|
||||
|
||||
#region Select
|
||||
ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<TResult>(Expression<Func<T,T2, TResult>> expression, bool isAutoFill);
|
||||
#endregion
|
||||
|
||||
#region OrderBy
|
||||
|
Loading…
Reference in New Issue
Block a user