mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-06 21:58:02 +08:00
-
This commit is contained in:
parent
1a5f662a0a
commit
e6422a5792
Binary file not shown.
@ -28,11 +28,21 @@ namespace OrmTest.ExpressionTest
|
|||||||
|
|
||||||
private static void Multiple()
|
private static void Multiple()
|
||||||
{
|
{
|
||||||
|
Expression<Func<Student,School, object>> exp = (it,school) => new Student() { Name = "a", Id = it.Id, SchoolId = school.Id };
|
||||||
|
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereSingle);
|
||||||
|
expContext.ResolveType = ResolveExpressType.SelectMultiple;
|
||||||
|
expContext.Resolve();
|
||||||
|
var selectorValue = expContext.Result.GetString();
|
||||||
|
var pars = expContext.Parameters;
|
||||||
}
|
}
|
||||||
private static void MultipleDynamic()
|
private static void MultipleDynamic()
|
||||||
{
|
{
|
||||||
|
Expression<Func<Student, School, object>> exp = (it, school) => new{ Name = "a", Id = it.Id, SchoolId = school.Id };
|
||||||
|
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereSingle);
|
||||||
|
expContext.ResolveType = ResolveExpressType.SelectMultiple;
|
||||||
|
expContext.Resolve();
|
||||||
|
var selectorValue = expContext.Result.GetString();
|
||||||
|
var pars = expContext.Parameters;
|
||||||
}
|
}
|
||||||
private static void single()
|
private static void single()
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -64,9 +64,8 @@ namespace SqlSugar
|
|||||||
case ResolveExpressType.WhereMultiple:
|
case ResolveExpressType.WhereMultiple:
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.SelectSingle:
|
case ResolveExpressType.SelectSingle:
|
||||||
parameter=parameter + ",";
|
|
||||||
break;
|
|
||||||
case ResolveExpressType.SelectMultiple:
|
case ResolveExpressType.SelectMultiple:
|
||||||
|
parameter = parameter + ",";
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.FieldSingle:
|
case ResolveExpressType.FieldSingle:
|
||||||
break;
|
break;
|
||||||
|
@ -19,9 +19,10 @@ namespace SqlSugar
|
|||||||
case ResolveExpressType.WhereMultiple:
|
case ResolveExpressType.WhereMultiple:
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.SelectSingle:
|
case ResolveExpressType.SelectSingle:
|
||||||
SelectSingle(expression, parameter);
|
Select(expression, parameter, true);
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.SelectMultiple:
|
case ResolveExpressType.SelectMultiple:
|
||||||
|
Select(expression, parameter, false);
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.FieldSingle:
|
case ResolveExpressType.FieldSingle:
|
||||||
break;
|
break;
|
||||||
@ -32,7 +33,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectSingle(MemberInitExpression expression, ExpressionParameter parameter)
|
public void Select(MemberInitExpression expression, ExpressionParameter parameter, bool isSingle)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
foreach (MemberBinding binding in expression.Bindings)
|
foreach (MemberBinding binding in expression.Bindings)
|
||||||
@ -63,8 +64,16 @@ namespace SqlSugar
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var fieldNme = (memberExpression).Member.Name;
|
var fieldNme = (memberExpression).Member.Name;
|
||||||
|
if (isSingle)
|
||||||
|
{
|
||||||
parameter.Context.Result.Append(fieldNme);
|
parameter.Context.Result.Append(fieldNme);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var shortName = memberExpression.Expression.ToString();
|
||||||
|
parameter.Context.Result.Append(shortName+"."+fieldNme);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,9 +19,10 @@ namespace SqlSugar
|
|||||||
case ResolveExpressType.WhereMultiple:
|
case ResolveExpressType.WhereMultiple:
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.SelectSingle:
|
case ResolveExpressType.SelectSingle:
|
||||||
SelectSingle(expression, parameter);
|
Select(expression, parameter, true);
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.SelectMultiple:
|
case ResolveExpressType.SelectMultiple:
|
||||||
|
Select(expression, parameter, false);
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.FieldSingle:
|
case ResolveExpressType.FieldSingle:
|
||||||
break;
|
break;
|
||||||
@ -32,7 +33,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectSingle(NewExpression expression, ExpressionParameter parameter)
|
private void Select(NewExpression expression, ExpressionParameter parameter, bool isSingle)
|
||||||
{
|
{
|
||||||
if (expression.Arguments != null)
|
if (expression.Arguments != null)
|
||||||
{
|
{
|
||||||
@ -57,10 +58,19 @@ namespace SqlSugar
|
|||||||
parameter.Context.Result.Append(parameterName);
|
parameter.Context.Result.Append(parameterName);
|
||||||
this.Context.Parameters.Add(new SugarParameter(parameterName, value));
|
this.Context.Parameters.Add(new SugarParameter(parameterName, value));
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
var fieldNme = (memberExpression).Member.Name;
|
var fieldNme = (memberExpression).Member.Name;
|
||||||
|
if (isSingle)
|
||||||
|
{
|
||||||
parameter.Context.Result.Append(fieldNme);
|
parameter.Context.Result.Append(fieldNme);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var shortName = memberExpression.Expression.ToString();
|
||||||
|
parameter.Context.Result.Append(shortName + "." + fieldNme);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -3,3 +3,4 @@ F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\bin\Debug\SqlSugar.pdb
|
|||||||
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\bin\Debug\Newtonsoft.Json.dll
|
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\bin\Debug\Newtonsoft.Json.dll
|
||||||
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.dll
|
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.dll
|
||||||
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.pdb
|
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.pdb
|
||||||
|
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.csprojResolveAssemblyReference.cache
|
||||||
|
BIN
SqlSugar/obj/Debug/SqlSugar.csprojResolveAssemblyReference.cache
Normal file
BIN
SqlSugar/obj/Debug/SqlSugar.csprojResolveAssemblyReference.cache
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user