mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 18:22:23 +08:00
-
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace SqlSugar
|
||||||
|
{
|
||||||
|
///<summary>
|
||||||
|
/// ** description:Get subquery sql
|
||||||
|
/// ** author:sunkaixuan
|
||||||
|
/// ** date:2017/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 "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -23,6 +23,8 @@ namespace SqlSugar
|
|||||||
new SubCount(){ Context=Context },
|
new SubCount(){ Context=Context },
|
||||||
new SubMax(){ Context=Context },
|
new SubMax(){ Context=Context },
|
||||||
new SubMin(){ Context=Context },
|
new SubMin(){ Context=Context },
|
||||||
|
new SubSum(){ Context=Context },
|
||||||
|
new SubAvg(){ Context=Context },
|
||||||
new SubOrderBy(){ Context=Context },
|
new SubOrderBy(){ Context=Context },
|
||||||
new SubOrderByDesc(){ Context=Context }
|
new SubOrderByDesc(){ Context=Context }
|
||||||
};
|
};
|
||||||
|
@@ -81,6 +81,7 @@
|
|||||||
<Compile Include="Enum\ConditionalType.cs" />
|
<Compile Include="Enum\ConditionalType.cs" />
|
||||||
<Compile Include="Enum\DbType.cs" />
|
<Compile Include="Enum\DbType.cs" />
|
||||||
<Compile Include="ExpressionsToSql\CaseWhen\CaseWhen.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\ISubOperation.cs" />
|
||||||
<Compile Include="ExpressionsToSql\Subquery\Items\SubAnd.cs" />
|
<Compile Include="ExpressionsToSql\Subquery\Items\SubAnd.cs" />
|
||||||
<Compile Include="ExpressionsToSql\Subquery\Items\SubCount.cs" />
|
<Compile Include="ExpressionsToSql\Subquery\Items\SubCount.cs" />
|
||||||
|
Reference in New Issue
Block a user