mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-23 04:23:47 +08:00
Update .net core project
This commit is contained in:
@@ -172,7 +172,12 @@ namespace SqlSugar
|
|||||||
string appendValue = Context.SqlParameterKeyWord
|
string appendValue = Context.SqlParameterKeyWord
|
||||||
+ ((MemberExpression)oppoSiteExpression).Member.Name
|
+ ((MemberExpression)oppoSiteExpression).Member.Name
|
||||||
+ Context.ParameterIndex;
|
+ Context.ParameterIndex;
|
||||||
if (value.ObjToString() != "NULL" && !parameter.ValueIsNull)
|
if (IsNullValue(parameter, value))
|
||||||
|
{
|
||||||
|
appendValue = $" NULL ";
|
||||||
|
parameter.BaseParameter.ValueIsNull = true;
|
||||||
|
}
|
||||||
|
else if (value.ObjToString() != "NULL" && !parameter.ValueIsNull)
|
||||||
{
|
{
|
||||||
EntityColumnInfo columnInfo = GetColumnInfo(oppoSiteExpression);
|
EntityColumnInfo columnInfo = GetColumnInfo(oppoSiteExpression);
|
||||||
if (columnInfo != null && columnInfo.SqlParameterDbType != null && columnInfo.SqlParameterDbType is System.Data.DbType)
|
if (columnInfo != null && columnInfo.SqlParameterDbType != null && columnInfo.SqlParameterDbType is System.Data.DbType)
|
||||||
@@ -726,7 +731,14 @@ namespace SqlSugar
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Validate
|
#region Validate
|
||||||
|
private bool IsNullValue(ExpressionParameter parameter, object value)
|
||||||
|
{
|
||||||
|
return value == null
|
||||||
|
&& !parameter.ValueIsNull
|
||||||
|
&& parameter.BaseParameter != null
|
||||||
|
&& parameter.BaseParameter.OperatorValue.IsIn("=","<>")
|
||||||
|
&& this.Context.ResolveType.IsIn(ResolveExpressType.WhereMultiple, ResolveExpressType.WhereSingle);
|
||||||
|
}
|
||||||
private static bool IsNotCaseExpression(Expression item)
|
private static bool IsNotCaseExpression(Expression item)
|
||||||
{
|
{
|
||||||
if ((item as MethodCallExpression).Method.Name == "IIF")
|
if ((item as MethodCallExpression).Method.Name == "IIF")
|
||||||
|
@@ -33,12 +33,34 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
SubGroup(expression, operatorValue);
|
SubGroup(expression, operatorValue);
|
||||||
}
|
}
|
||||||
|
else if (IsJoinString(expression, operatorValue))
|
||||||
|
{
|
||||||
|
JoinString(parameter, expression);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DefaultBinary(parameter, expression, operatorValue);
|
DefaultBinary(parameter, expression, operatorValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void JoinString(ExpressionParameter parameter, BinaryExpression expression)
|
||||||
|
{
|
||||||
|
var leftString = GetNewExpressionValue(expression.Left);
|
||||||
|
var RightString = GetNewExpressionValue(expression.Right);
|
||||||
|
var joinString = this.Context.DbMehtods.MergeString(leftString, RightString);
|
||||||
|
if (this.Context.Result.Contains(ExpressionConst.FormatSymbol))
|
||||||
|
{
|
||||||
|
base.Context.Result.Replace("{0}", $" {joinString} ");
|
||||||
|
base.Context.Result.Append(" " + ExpressionConst.ExpressionReplace + parameter.BaseParameter.Index + " ");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
base.Context.Result.Append($" {joinString} ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void DefaultBinary(ExpressionParameter parameter, BinaryExpression expression, string operatorValue)
|
private void DefaultBinary(ExpressionParameter parameter, BinaryExpression expression, string operatorValue)
|
||||||
{
|
{
|
||||||
var isEqual = expression.NodeType == ExpressionType.Equal;
|
var isEqual = expression.NodeType == ExpressionType.Equal;
|
||||||
@@ -232,7 +254,12 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
private static bool IsJoinString(BinaryExpression expression, string operatorValue)
|
||||||
|
{
|
||||||
|
return operatorValue == "+"
|
||||||
|
&& expression.Right.Type == UtilConstants.StringType
|
||||||
|
&& expression.Left.Type==UtilConstants.StringType;
|
||||||
|
}
|
||||||
private static bool RightIsHasValue(Expression leftExpression, Expression rightExpression,bool isLogic)
|
private static bool RightIsHasValue(Expression leftExpression, Expression rightExpression,bool isLogic)
|
||||||
{
|
{
|
||||||
return isLogic&&
|
return isLogic&&
|
||||||
|
@@ -188,10 +188,10 @@ namespace SqlSugar
|
|||||||
List<T> ToPageList(int pageNumber, int pageSize);
|
List<T> ToPageList(int pageNumber, int pageSize);
|
||||||
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize);
|
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize);
|
||||||
List<T> ToPageList(int pageNumber, int pageSize, ref int totalNumber);
|
List<T> ToPageList(int pageNumber, int pageSize, ref int totalNumber);
|
||||||
List<TResult> ToPageList<TResult>(int pageIndex, int pageSize, ref int totalNumber, Expression<Func<T, TResult>> expression);
|
List<TResult> ToPageList<TResult>(int pageNumber, int pageSize, ref int totalNumber, Expression<Func<T, TResult>> expression);
|
||||||
List<T> ToPageList(int pageNumber, int pageSize, ref int totalNumber,ref int totalPage);
|
List<T> ToPageList(int pageNumber, int pageSize, ref int totalNumber,ref int totalPage);
|
||||||
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize, RefAsync<int> totalNumber);
|
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize, RefAsync<int> totalNumber);
|
||||||
Task<List<TResult>> ToPageListAsync<TResult>(int pageIndex, int pageSize, RefAsync<int> totalNumber, Expression<Func<T, TResult>> expression);
|
Task<List<TResult>> ToPageListAsync<TResult>(int pageNumber, int pageSize, RefAsync<int> totalNumber, Expression<Func<T, TResult>> expression);
|
||||||
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize, RefAsync<int> totalNumber, RefAsync<int> totalPage);
|
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize, RefAsync<int> totalNumber, RefAsync<int> totalPage);
|
||||||
ISugarQueryable<T> WithCache(string cacheKey,int cacheDurationInSeconds = int.MaxValue);
|
ISugarQueryable<T> WithCache(string cacheKey,int cacheDurationInSeconds = int.MaxValue);
|
||||||
ISugarQueryable<T> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
ISugarQueryable<T> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||||
|
Reference in New Issue
Block a user