mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-09 02:44:58 +08:00
-
This commit is contained in:
@@ -34,9 +34,11 @@ namespace OrmTest.UnitTest
|
|||||||
{
|
{
|
||||||
Console.WriteLine(sql+" " + pars);
|
Console.WriteLine(sql+" " + pars);
|
||||||
};
|
};
|
||||||
var list = db.Queryable<Student>()
|
var list = db.Queryable<School,School>((st,st2)=>new object[] {
|
||||||
|
JoinType.Left,st.Id==st2.Id
|
||||||
|
})
|
||||||
.Where(st => st.Id > 0)
|
.Where(st => st.Id > 0)
|
||||||
.Select(it => new ViewModelStudent { Name = it.Name }).ToList();
|
.Select(st => new ViewModelStudent { School=st}).ToList();
|
||||||
|
|
||||||
var list2 = db.Queryable<Student>()
|
var list2 = db.Queryable<Student>()
|
||||||
.Where(st => st.Id > 0)
|
.Where(st => st.Id > 0)
|
||||||
|
|||||||
@@ -87,6 +87,9 @@ namespace SqlSugar
|
|||||||
var expression = this.SelectValue as Expression;
|
var expression = this.SelectValue as Expression;
|
||||||
ILambdaExpressions resolveExpress = this.Context.LambdaExpressions;
|
ILambdaExpressions resolveExpress = this.Context.LambdaExpressions;
|
||||||
var isSingle= Builder.LambadaQueryBuilder.JoinQueryInfos.IsValuable();
|
var isSingle= Builder.LambadaQueryBuilder.JoinQueryInfos.IsValuable();
|
||||||
|
resolveExpress.JoinQueryInfos = Builder.LambadaQueryBuilder.JoinQueryInfos;
|
||||||
|
resolveExpress.MappingColumns = Context.MappingColumns;
|
||||||
|
resolveExpress.MappingTables = Context.MappingTables;
|
||||||
resolveExpress.Resolve(expression, ResolveType);
|
resolveExpress.Resolve(expression, ResolveType);
|
||||||
this.QueryPars.AddRange(resolveExpress.Parameters);
|
this.QueryPars.AddRange(resolveExpress.Parameters);
|
||||||
var reval= resolveExpress.Result.GetResultString();
|
var reval= resolveExpress.Result.GetResultString();
|
||||||
|
|||||||
@@ -95,6 +95,10 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return new NewArrayExpessionResolve(parameter);
|
return new NewArrayExpessionResolve(parameter);
|
||||||
}
|
}
|
||||||
|
else if (expression is ParameterExpression)
|
||||||
|
{
|
||||||
|
return new TypeParameterExpressionReolve(parameter);
|
||||||
|
}
|
||||||
else if (expression != null && expression.NodeType.IsIn(ExpressionType.NewArrayBounds))
|
else if (expression != null && expression.NodeType.IsIn(ExpressionType.NewArrayBounds))
|
||||||
{
|
{
|
||||||
Check.ThrowNotSupportedException("ExpressionType.NewArrayBounds");
|
Check.ThrowNotSupportedException("ExpressionType.NewArrayBounds");
|
||||||
|
|||||||
@@ -87,7 +87,9 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else if (item.Type.IsClass())
|
else if (item.Type.IsClass())
|
||||||
{
|
{
|
||||||
string prefix = Context.IsJoin ? memberName : "";
|
base.Expression = item;
|
||||||
|
base.Start();
|
||||||
|
var shortName = parameter.CommonTempData;
|
||||||
var listProperties = item.Type.GetProperties().Cast<PropertyInfo>().ToList();
|
var listProperties = item.Type.GetProperties().Cast<PropertyInfo>().ToList();
|
||||||
foreach (var property in listProperties)
|
foreach (var property in listProperties)
|
||||||
{
|
{
|
||||||
@@ -97,14 +99,15 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
var asName =memberName+"_"+property.Name;
|
||||||
var columnName = property.Name;
|
var columnName = property.Name;
|
||||||
if (Context.IsJoin)
|
if (Context.IsJoin)
|
||||||
{
|
{
|
||||||
base.Context.Result.Append(Context.GetAsString(property.Name, columnName,""));
|
base.Context.Result.Append(Context.GetAsString(asName, columnName, shortName.ObjToString()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
base.Context.Result.Append(Context.GetAsString(property.Name, columnName));
|
base.Context.Result.Append(Context.GetAsString(asName, columnName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SqlSugar
|
||||||
|
{
|
||||||
|
public class TypeParameterExpressionReolve : BaseResolve
|
||||||
|
{
|
||||||
|
public TypeParameterExpressionReolve(ExpressionParameter parameter) : base(parameter)
|
||||||
|
{
|
||||||
|
var expression = (ParameterExpression)base.Expression;
|
||||||
|
switch (parameter.Context.ResolveType)
|
||||||
|
{
|
||||||
|
case ResolveExpressType.WhereSingle:
|
||||||
|
break;
|
||||||
|
case ResolveExpressType.WhereMultiple:
|
||||||
|
break;
|
||||||
|
case ResolveExpressType.SelectSingle:
|
||||||
|
case ResolveExpressType.SelectMultiple:
|
||||||
|
parameter.BaseParameter.CommonTempData = expression.Name;
|
||||||
|
break;
|
||||||
|
case ResolveExpressType.FieldSingle:
|
||||||
|
break;
|
||||||
|
case ResolveExpressType.FieldMultiple:
|
||||||
|
break;
|
||||||
|
case ResolveExpressType.Join:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,9 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
public partial interface ILambdaExpressions
|
public partial interface ILambdaExpressions
|
||||||
{
|
{
|
||||||
|
MappingColumnList MappingColumns { get; set; }
|
||||||
|
MappingTableList MappingTables { get; set; }
|
||||||
|
List<JoinQueryInfo> JoinQueryInfos { get; set; }
|
||||||
SqlSugarClient Context { get; set; }
|
SqlSugarClient Context { get; set; }
|
||||||
IDbMethods DbMehtods { get; set; }
|
IDbMethods DbMehtods { get; set; }
|
||||||
Expression Expression { get; set; }
|
Expression Expression { get; set; }
|
||||||
|
|||||||
@@ -124,6 +124,7 @@
|
|||||||
<Compile Include="ExpressionsToSql\ResolveItems\NewArrayExpessionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\NewArrayExpessionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\NewExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\NewExpressionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\SimpleBinaryExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\SimpleBinaryExpressionResolve.cs" />
|
||||||
|
<Compile Include="ExpressionsToSql\ResolveItems\TypeParameterExpressionReolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\UnaryExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\UnaryExpressionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\Common\ExpResolveAccessory.cs" />
|
<Compile Include="ExpressionsToSql\Common\ExpResolveAccessory.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ExpressionContext.cs" />
|
<Compile Include="ExpressionsToSql\ExpressionContext.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user