mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-17 10:41:56 +08:00
-
This commit is contained in:
parent
e987c57f3f
commit
fa162e8748
@ -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 SubMax(){ Context=Context },
|
||||
new SubMin(){ Context=Context },
|
||||
new SubSum(){ Context=Context },
|
||||
new SubAvg(){ Context=Context },
|
||||
new SubOrderBy(){ Context=Context },
|
||||
new SubOrderByDesc(){ Context=Context }
|
||||
};
|
||||
|
@ -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" />
|
||||
|
Loading…
Reference in New Issue
Block a user