mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-18 17:48:11 +08:00
-
This commit is contained in:
@@ -34,9 +34,11 @@ namespace OrmTest.UnitTest
|
||||
{
|
||||
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)
|
||||
.Select(it => new ViewModelStudent { Name = it.Name }).ToList();
|
||||
.Select(st => new ViewModelStudent { School=st}).ToList();
|
||||
|
||||
var list2 = db.Queryable<Student>()
|
||||
.Where(st => st.Id > 0)
|
||||
|
@@ -87,6 +87,9 @@ namespace SqlSugar
|
||||
var expression = this.SelectValue as Expression;
|
||||
ILambdaExpressions resolveExpress = this.Context.LambdaExpressions;
|
||||
var isSingle= Builder.LambadaQueryBuilder.JoinQueryInfos.IsValuable();
|
||||
resolveExpress.JoinQueryInfos = Builder.LambadaQueryBuilder.JoinQueryInfos;
|
||||
resolveExpress.MappingColumns = Context.MappingColumns;
|
||||
resolveExpress.MappingTables = Context.MappingTables;
|
||||
resolveExpress.Resolve(expression, ResolveType);
|
||||
this.QueryPars.AddRange(resolveExpress.Parameters);
|
||||
var reval= resolveExpress.Result.GetResultString();
|
||||
|
@@ -95,6 +95,10 @@ namespace SqlSugar
|
||||
{
|
||||
return new NewArrayExpessionResolve(parameter);
|
||||
}
|
||||
else if (expression is ParameterExpression)
|
||||
{
|
||||
return new TypeParameterExpressionReolve(parameter);
|
||||
}
|
||||
else if (expression != null && expression.NodeType.IsIn(ExpressionType.NewArrayBounds))
|
||||
{
|
||||
Check.ThrowNotSupportedException("ExpressionType.NewArrayBounds");
|
||||
|
@@ -87,7 +87,9 @@ namespace SqlSugar
|
||||
}
|
||||
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();
|
||||
foreach (var property in listProperties)
|
||||
{
|
||||
@@ -97,14 +99,15 @@ namespace SqlSugar
|
||||
}
|
||||
else
|
||||
{
|
||||
var asName =memberName+"_"+property.Name;
|
||||
var columnName = property.Name;
|
||||
if (Context.IsJoin)
|
||||
{
|
||||
base.Context.Result.Append(Context.GetAsString(property.Name, columnName,""));
|
||||
base.Context.Result.Append(Context.GetAsString(asName, columnName, shortName.ObjToString()));
|
||||
}
|
||||
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
|
||||
{
|
||||
MappingColumnList MappingColumns { get; set; }
|
||||
MappingTableList MappingTables { get; set; }
|
||||
List<JoinQueryInfo> JoinQueryInfos { get; set; }
|
||||
SqlSugarClient Context { get; set; }
|
||||
IDbMethods DbMehtods { get; set; }
|
||||
Expression Expression { get; set; }
|
||||
|
@@ -124,6 +124,7 @@
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\NewArrayExpessionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\NewExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\SimpleBinaryExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\TypeParameterExpressionReolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\UnaryExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\Common\ExpResolveAccessory.cs" />
|
||||
<Compile Include="ExpressionsToSql\ExpressionContext.cs" />
|
||||
|
Reference in New Issue
Block a user