This commit is contained in:
sunkaixuan 2017-11-10 10:18:06 +08:00
parent e987c57f3f
commit fa162e8748
4 changed files with 56 additions and 5 deletions

View File

@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
namespace SqlSugar
{
///<summary>
/// ** descriptionGet subquery sql
/// ** authorsunkaixuan
/// ** date2017/9/17
/// ** email:610262374@qq.com
/// </summary>
public class CaseWhenResolve
{
List<MethodCallExpression> allMethods = new List<MethodCallExpression>();
private ExpressionContext context = null;
private bool hasWhere;
public CaseWhenResolve(MethodCallExpression expression, ExpressionContext context, Expression oppsiteExpression)
{
this.context = context;
var currentExpression = expression;
allMethods.Add(currentExpression);
if (context.IsSingle && oppsiteExpression != null&& oppsiteExpression is MemberExpression)
{
var childExpression = (oppsiteExpression as MemberExpression).Expression;
this.context.SingleTableNameSubqueryShortName = (childExpression as ParameterExpression).Name;
}
else if (context.IsSingle)
{
this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters.First().Name;
}
while (currentExpression != null)
{
var addItem = currentExpression.Object as MethodCallExpression;
if (addItem != null)
allMethods.Add(addItem);
currentExpression = addItem;
}
}
public string GetSql()
{
return "";
}
}
}

View File

@ -23,6 +23,8 @@ namespace SqlSugar
new SubCount(){ Context=Context },
new SubMax(){ Context=Context },
new SubMin(){ Context=Context },
new SubSum(){ Context=Context },
new SubAvg(){ Context=Context },
new SubOrderBy(){ Context=Context },
new SubOrderByDesc(){ Context=Context }
};

View File

@ -81,6 +81,7 @@
<Compile Include="Enum\ConditionalType.cs" />
<Compile Include="Enum\DbType.cs" />
<Compile Include="ExpressionsToSql\CaseWhen\CaseWhen.cs" />
<Compile Include="ExpressionsToSql\CaseWhen\CaseWhenResolve.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\ISubOperation.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\SubAnd.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\SubCount.cs" />