mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-24 07:22:57 +08:00
Update exp to sql
This commit is contained in:
parent
0d440998df
commit
8a72f18798
@ -130,24 +130,12 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else if (IsConst(item))
|
else if (IsConst(item))
|
||||||
{
|
{
|
||||||
base.Expression =ExpressionTool.RemoveConvert(item);
|
base.Expression = ExpressionTool.RemoveConvert(item);
|
||||||
base.Start();
|
base.Start();
|
||||||
string parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.Const + this.Context.ParameterIndex;
|
string parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.Const + this.Context.ParameterIndex;
|
||||||
parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameterName));
|
parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameterName));
|
||||||
var addItem = new SugarParameter(parameterName, parameter.CommonTempData);
|
var addItem = new SugarParameter(parameterName, parameter.CommonTempData);
|
||||||
var dataType = UtilMethods.GetUnderType(item.Type);
|
ConvertParameterTypeByType(item, addItem);
|
||||||
if (addItem.Value == null && dataType == UtilConstants.DateType)
|
|
||||||
{
|
|
||||||
addItem.DbType = System.Data.DbType.Date;
|
|
||||||
}
|
|
||||||
if (addItem.Value == null && dataType.IsIn(UtilConstants.FloatType,UtilConstants.IntType,UtilConstants.LongType,UtilConstants.DecType,UtilConstants.DobType))
|
|
||||||
{
|
|
||||||
addItem.DbType = System.Data.DbType.Int32;
|
|
||||||
}
|
|
||||||
if (addItem.Value == null && dataType == UtilConstants.BoolType)
|
|
||||||
{
|
|
||||||
addItem.DbType = System.Data.DbType.Boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.Context.Parameters.Add(addItem);
|
this.Context.Parameters.Add(addItem);
|
||||||
this.Context.ParameterIndex++;
|
this.Context.ParameterIndex++;
|
||||||
@ -163,6 +151,16 @@ namespace SqlSugar
|
|||||||
base.Start();
|
base.Start();
|
||||||
parameter.IsAppendResult();
|
parameter.IsAppendResult();
|
||||||
parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameter.CommonTempData.ObjToString()));
|
parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameter.CommonTempData.ObjToString()));
|
||||||
|
|
||||||
|
if (this.Context.Parameters != null)
|
||||||
|
{
|
||||||
|
var memberParameter = this.Context.Parameters?.FirstOrDefault(it =>it.Value==null && it.ParameterName == parameter.CommonTempData.ObjToString());
|
||||||
|
if (memberParameter != null)
|
||||||
|
{
|
||||||
|
ConvertParameterTypeByType(item, memberParameter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
base.Context.Result.CurrentParameter = null;
|
base.Context.Result.CurrentParameter = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -208,6 +206,24 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void ConvertParameterTypeByType(Expression item, SugarParameter addItem)
|
||||||
|
{
|
||||||
|
var dataType = UtilMethods.GetUnderType(item.Type);
|
||||||
|
if (addItem.Value == null && dataType == UtilConstants.DateType)
|
||||||
|
{
|
||||||
|
addItem.DbType = System.Data.DbType.Date;
|
||||||
|
}
|
||||||
|
if (addItem.Value == null && dataType.IsIn(UtilConstants.FloatType, UtilConstants.IntType, UtilConstants.LongType, UtilConstants.DecType, UtilConstants.DobType))
|
||||||
|
{
|
||||||
|
addItem.DbType = System.Data.DbType.Int32;
|
||||||
|
}
|
||||||
|
if (addItem.Value == null && dataType == UtilConstants.BoolType)
|
||||||
|
{
|
||||||
|
addItem.DbType = System.Data.DbType.Boolean;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static bool IsConst(Expression item)
|
private static bool IsConst(Expression item)
|
||||||
{
|
{
|
||||||
return item is UnaryExpression || item.NodeType == ExpressionType.Constant || (item is MemberExpression) && ((MemberExpression)item).Expression.NodeType == ExpressionType.Constant;
|
return item is UnaryExpression || item.NodeType == ExpressionType.Constant || (item is MemberExpression) && ((MemberExpression)item).Expression.NodeType == ExpressionType.Constant;
|
||||||
|
Loading…
Reference in New Issue
Block a user