mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-21 02:58:05 +08:00
Update exp to sql
This commit is contained in:
@@ -46,6 +46,10 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
AppendMember(parameter, isLeft, value, oppoSiteExpression);
|
AppendMember(parameter, isLeft, value, oppoSiteExpression);
|
||||||
}
|
}
|
||||||
|
else if (ExpressionTool.RemoveConvert(oppoSiteExpression) is MemberExpression)
|
||||||
|
{
|
||||||
|
AppendMember(parameter, isLeft, value, ExpressionTool.RemoveConvert(oppoSiteExpression));
|
||||||
|
}
|
||||||
else if ((oppoSiteExpression is UnaryExpression && (oppoSiteExpression as UnaryExpression).Operand is MemberExpression))
|
else if ((oppoSiteExpression is UnaryExpression && (oppoSiteExpression as UnaryExpression).Operand is MemberExpression))
|
||||||
{
|
{
|
||||||
value = AppendUnaryExp(parameter, isLeft, value, oppoSiteExpression);
|
value = AppendUnaryExp(parameter, isLeft, value, oppoSiteExpression);
|
||||||
@@ -141,6 +145,12 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
this.Context.Parameters.Add(p);
|
this.Context.Parameters.Add(p);
|
||||||
}
|
}
|
||||||
|
else if (UtilMethods.IsParameterConverter(columnInfo))
|
||||||
|
{
|
||||||
|
SugarParameter p = UtilMethods.GetParameterConverter(this.Context.SugarContext.Context, value, oppoSiteExpression, columnInfo);
|
||||||
|
appendValue = p.ParameterName;
|
||||||
|
this.Context.Parameters.Add(p);
|
||||||
|
}
|
||||||
else if (parameter?.BaseParameter?.CommonTempData.ObjToString() == "IsJson=true")
|
else if (parameter?.BaseParameter?.CommonTempData.ObjToString() == "IsJson=true")
|
||||||
{
|
{
|
||||||
this.Context.Parameters.Add(new SugarParameter(appendValue, new SerializeService().SerializeObject(value)) { IsJson=true});
|
this.Context.Parameters.Add(new SugarParameter(appendValue, new SerializeService().SerializeObject(value)) { IsJson=true});
|
||||||
|
@@ -19,6 +19,20 @@ namespace SqlSugar
|
|||||||
public class UtilMethods
|
public class UtilMethods
|
||||||
{
|
{
|
||||||
|
|
||||||
|
internal static bool IsParameterConverter(EntityColumnInfo columnInfo)
|
||||||
|
{
|
||||||
|
return columnInfo != null && columnInfo.SqlParameterDbType != null && columnInfo.SqlParameterDbType is Type
|
||||||
|
&& typeof(ISugarDataConverter).IsAssignableFrom(columnInfo.SqlParameterDbType as Type);
|
||||||
|
}
|
||||||
|
internal static SugarParameter GetParameterConverter(ISqlSugarClient db,object value, Expression oppoSiteExpression, EntityColumnInfo columnInfo)
|
||||||
|
{
|
||||||
|
var entity = db.EntityMaintenance.GetEntityInfo(oppoSiteExpression.Type);
|
||||||
|
var type = columnInfo.SqlParameterDbType as Type;
|
||||||
|
var ParameterConverter = type.GetMethod("ParameterConverter").MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
|
||||||
|
var obj = Activator.CreateInstance(type);
|
||||||
|
var p = ParameterConverter.Invoke(obj, new object[] { value, 100 }) as SugarParameter;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
internal static bool IsErrorParameterName(ConnectionConfig connectionConfig,DbColumnInfo columnInfo)
|
internal static bool IsErrorParameterName(ConnectionConfig connectionConfig,DbColumnInfo columnInfo)
|
||||||
{
|
{
|
||||||
return connectionConfig.MoreSettings?.IsCorrectErrorSqlParameterName == true &&
|
return connectionConfig.MoreSettings?.IsCorrectErrorSqlParameterName == true &&
|
||||||
|
Reference in New Issue
Block a user