Update .net core project

This commit is contained in:
sunkaixuan
2022-09-02 20:38:33 +08:00
parent 4f5fc610af
commit 4f57308b34
3 changed files with 44 additions and 5 deletions

View File

@@ -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")

View File

@@ -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&&

View File

@@ -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);