mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-09 02:44:58 +08:00
Update .Net
This commit is contained in:
@@ -146,7 +146,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return "ORDER BY "+this.Builder.SqlDateNow+" ";
|
return "ORDER BY " + this.Builder.SqlDateNow + " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public virtual string OrderByTemplate
|
public virtual string OrderByTemplate
|
||||||
@@ -216,7 +216,8 @@ namespace SqlSugar
|
|||||||
public virtual ExpressionResult GetExpressionValue(Expression expression, ResolveExpressType resolveType)
|
public virtual ExpressionResult GetExpressionValue(Expression expression, ResolveExpressType resolveType)
|
||||||
{
|
{
|
||||||
ILambdaExpressions resolveExpress = this.LambdaExpressions;
|
ILambdaExpressions resolveExpress = this.LambdaExpressions;
|
||||||
if (resolveType.IsIn(ResolveExpressType.FieldSingle,ResolveExpressType.FieldMultiple,ResolveExpressType.SelectSingle, ResolveExpressType.SelectMultiple) &&(expression is LambdaExpression)&& (expression as LambdaExpression).Body is BinaryExpression) {
|
if (resolveType.IsIn(ResolveExpressType.FieldSingle, ResolveExpressType.FieldMultiple, ResolveExpressType.SelectSingle, ResolveExpressType.SelectMultiple) && (expression is LambdaExpression) && (expression as LambdaExpression).Body is BinaryExpression)
|
||||||
|
{
|
||||||
resolveType = resolveType.IsIn(ResolveExpressType.SelectSingle, ResolveExpressType.FieldSingle) ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple;
|
resolveType = resolveType.IsIn(ResolveExpressType.SelectSingle, ResolveExpressType.FieldSingle) ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple;
|
||||||
}
|
}
|
||||||
this.LambdaExpressions.Clear();
|
this.LambdaExpressions.Clear();
|
||||||
@@ -246,7 +247,8 @@ namespace SqlSugar
|
|||||||
this.Parameters.AddRange(resolveExpress.Parameters);
|
this.Parameters.AddRange(resolveExpress.Parameters);
|
||||||
var result = resolveExpress.Result;
|
var result = resolveExpress.Result;
|
||||||
var isSingleTableHasSubquery = IsSingle() && resolveExpress.SingleTableNameSubqueryShortName.HasValue();
|
var isSingleTableHasSubquery = IsSingle() && resolveExpress.SingleTableNameSubqueryShortName.HasValue();
|
||||||
if (isSingleTableHasSubquery) {
|
if (isSingleTableHasSubquery)
|
||||||
|
{
|
||||||
Check.Exception(!string.IsNullOrEmpty(this.TableShortName) && resolveExpress.SingleTableNameSubqueryShortName != this.TableShortName, "{0} and {1} need same name");
|
Check.Exception(!string.IsNullOrEmpty(this.TableShortName) && resolveExpress.SingleTableNameSubqueryShortName != this.TableShortName, "{0} and {1} need same name");
|
||||||
this.TableShortName = resolveExpress.SingleTableNameSubqueryShortName;
|
this.TableShortName = resolveExpress.SingleTableNameSubqueryShortName;
|
||||||
}
|
}
|
||||||
@@ -256,7 +258,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
string oldOrderBy = this.OrderByValue;
|
string oldOrderBy = this.OrderByValue;
|
||||||
string externalOrderBy = oldOrderBy;
|
string externalOrderBy = oldOrderBy;
|
||||||
var isIgnoreOrderBy = this.IsCount&&this.PartitionByValue.IsNullOrEmpty();
|
var isIgnoreOrderBy = this.IsCount && this.PartitionByValue.IsNullOrEmpty();
|
||||||
AppendFilter();
|
AppendFilter();
|
||||||
sql = new StringBuilder();
|
sql = new StringBuilder();
|
||||||
if (this.OrderByValue == null && (Skip != null || Take != null)) this.OrderByValue = " ORDER BY GetDate() ";
|
if (this.OrderByValue == null && (Skip != null || Take != null)) this.OrderByValue = " ORDER BY GetDate() ";
|
||||||
@@ -271,7 +273,7 @@ namespace SqlSugar
|
|||||||
if (isIgnoreOrderBy) { orderByValue = null; }
|
if (isIgnoreOrderBy) { orderByValue = null; }
|
||||||
sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, groupByValue, orderByValue);
|
sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, groupByValue, orderByValue);
|
||||||
sql.Replace(UtilConstants.ReplaceKey, isRowNumber ? (isIgnoreOrderBy ? null : rowNumberString) : null);
|
sql.Replace(UtilConstants.ReplaceKey, isRowNumber ? (isIgnoreOrderBy ? null : rowNumberString) : null);
|
||||||
if (isIgnoreOrderBy) { this.OrderByValue = oldOrderBy; return sql.ToString(); }
|
if (isIgnoreOrderBy) { this.OrderByValue = oldOrderBy; return sql.ToString(); }
|
||||||
var result = ToPageSql(sql.ToString(), this.Take, this.Skip);
|
var result = ToPageSql(sql.ToString(), this.Take, this.Skip);
|
||||||
if (ExternalPageIndex > 0)
|
if (ExternalPageIndex > 0)
|
||||||
{
|
{
|
||||||
@@ -294,7 +296,7 @@ namespace SqlSugar
|
|||||||
foreach (var item in gobalFilterList.Where(it => it.IsJoinQuery == !IsSingle()))
|
foreach (var item in gobalFilterList.Where(it => it.IsJoinQuery == !IsSingle()))
|
||||||
{
|
{
|
||||||
var filterResult = item.FilterValue(this.Context);
|
var filterResult = item.FilterValue(this.Context);
|
||||||
WhereInfos.Add(this.Builder.AppendWhereOrAnd(this.WhereInfos.IsNullOrEmpty(), filterResult.Sql+UtilConstants.Space));
|
WhereInfos.Add(this.Builder.AppendWhereOrAnd(this.WhereInfos.IsNullOrEmpty(), filterResult.Sql + UtilConstants.Space));
|
||||||
var filterParamters = this.Context.Ado.GetParameters(filterResult.Parameters);
|
var filterParamters = this.Context.Ado.GetParameters(filterResult.Parameters);
|
||||||
if (filterParamters.HasValue())
|
if (filterParamters.HasValue())
|
||||||
{
|
{
|
||||||
@@ -339,18 +341,18 @@ namespace SqlSugar
|
|||||||
public virtual string ToPageSql2(string sql, int? pageIndex, int? pageSize, bool isExternal = false)
|
public virtual string ToPageSql2(string sql, int? pageIndex, int? pageSize, bool isExternal = false)
|
||||||
{
|
{
|
||||||
string temp = isExternal ? ExternalPageTempalte : PageTempalte;
|
string temp = isExternal ? ExternalPageTempalte : PageTempalte;
|
||||||
return string.Format(temp, sql.ToString(), (pageIndex - 1) * pageSize+1, pageIndex * pageSize);
|
return string.Format(temp, sql.ToString(), (pageIndex - 1) * pageSize + 1, pageIndex * pageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual string GetSelectByItems(List<KeyValuePair<string, object>> items)
|
public virtual string GetSelectByItems(List<KeyValuePair<string, object>> items)
|
||||||
{
|
{
|
||||||
var array = items.Select(it => {
|
var array = items.Select(it => {
|
||||||
dynamic dynamicObj = this.Context.Utilities.DeserializeObject<dynamic>(this.Context.Utilities.SerializeObject(it.Value));
|
dynamic dynamicObj = this.Context.Utilities.DeserializeObject<dynamic>(this.Context.Utilities.SerializeObject(it.Value));
|
||||||
var dbName =Builder.GetTranslationColumnName( (string)(dynamicObj.dbName));
|
var dbName = Builder.GetTranslationColumnName((string)(dynamicObj.dbName));
|
||||||
var asName = Builder.GetTranslationColumnName((string)(dynamicObj.asName));
|
var asName = Builder.GetTranslationColumnName((string)(dynamicObj.asName));
|
||||||
return string.Format("{0}.{1} AS {2}",it.Key,dbName,asName);
|
return string.Format("{0}.{1} AS {2}", it.Key, dbName, asName);
|
||||||
});
|
});
|
||||||
return string.Join(",",array);
|
return string.Join(",", array);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual string ToJoinString(JoinQueryInfo joinInfo)
|
public virtual string ToJoinString(JoinQueryInfo joinInfo)
|
||||||
@@ -359,7 +361,7 @@ namespace SqlSugar
|
|||||||
this.JoinTemplate,
|
this.JoinTemplate,
|
||||||
joinInfo.JoinType.ToString() + UtilConstants.Space,
|
joinInfo.JoinType.ToString() + UtilConstants.Space,
|
||||||
Builder.GetTranslationTableName(joinInfo.TableName) + UtilConstants.Space,
|
Builder.GetTranslationTableName(joinInfo.TableName) + UtilConstants.Space,
|
||||||
joinInfo.ShortName + UtilConstants.Space + TableWithString,
|
joinInfo.ShortName + UtilConstants.Space + (TableWithString == SqlWith.Null ? " " : TableWithString),
|
||||||
joinInfo.JoinWhere);
|
joinInfo.JoinWhere);
|
||||||
}
|
}
|
||||||
public virtual void Clear()
|
public virtual void Clear()
|
||||||
@@ -420,7 +422,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (expression is LambdaExpression && (expression as LambdaExpression).Body is MethodCallExpression&&this.Context.CurrentConnectionConfig.DbType==DbType.SqlServer&&this.OrderByValue.HasValue())
|
if (expression is LambdaExpression && (expression as LambdaExpression).Body is MethodCallExpression && this.Context.CurrentConnectionConfig.DbType == DbType.SqlServer && this.OrderByValue.HasValue())
|
||||||
{
|
{
|
||||||
result = result + " AS columnName";
|
result = result + " AS columnName";
|
||||||
}
|
}
|
||||||
@@ -441,7 +443,7 @@ namespace SqlSugar
|
|||||||
var columns = this.Context.EntityMaintenance.GetEntityInfo(this.EntityType).Columns.Where(it => !it.IsIgnore);
|
var columns = this.Context.EntityMaintenance.GetEntityInfo(this.EntityType).Columns.Where(it => !it.IsIgnore);
|
||||||
if (this.IgnoreColumns.HasValue())
|
if (this.IgnoreColumns.HasValue())
|
||||||
{
|
{
|
||||||
columns = columns.Where(c => !this.IgnoreColumns.Any(i=>c.PropertyName.Equals(i,StringComparison.CurrentCultureIgnoreCase)||c.DbColumnName.Equals(i,StringComparison.CurrentCultureIgnoreCase))).ToList();
|
columns = columns.Where(c => !this.IgnoreColumns.Any(i => c.PropertyName.Equals(i, StringComparison.CurrentCultureIgnoreCase) || c.DbColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase))).ToList();
|
||||||
}
|
}
|
||||||
result = string.Join(",", columns.Select(it => pre + Builder.GetTranslationColumnName(it.EntityName, it.PropertyName)));
|
result = string.Join(",", columns.Select(it => pre + Builder.GetTranslationColumnName(it.EntityName, it.PropertyName)));
|
||||||
}
|
}
|
||||||
@@ -488,7 +490,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
result += (TableShortName + UtilConstants.Space);
|
result += (TableShortName + UtilConstants.Space);
|
||||||
}
|
}
|
||||||
if (this.TableWithString.HasValue()&&this.TableWithString!= SqlWith.Null)
|
if (this.TableWithString.HasValue() && this.TableWithString != SqlWith.Null)
|
||||||
{
|
{
|
||||||
result += TableWithString + UtilConstants.Space;
|
result += TableWithString + UtilConstants.Space;
|
||||||
}
|
}
|
||||||
@@ -516,7 +518,7 @@ namespace SqlSugar
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (this.OrderByValue == null) return null;
|
if (this.OrderByValue == null) return null;
|
||||||
if (IsCount&&this.PartitionByValue.IsNullOrEmpty()) return null;
|
if (IsCount && this.PartitionByValue.IsNullOrEmpty()) return null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return this.OrderByValue;
|
return this.OrderByValue;
|
||||||
@@ -528,7 +530,7 @@ namespace SqlSugar
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (this.GroupByValue == null) return null;
|
if (this.GroupByValue == null) return null;
|
||||||
if (this.GroupByValue.Last() != ' ' )
|
if (this.GroupByValue.Last() != ' ')
|
||||||
{
|
{
|
||||||
return this.GroupByValue + UtilConstants.Space;
|
return this.GroupByValue + UtilConstants.Space;
|
||||||
}
|
}
|
||||||
@@ -546,11 +548,12 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public void CheckExpression(Expression expression, string methodName)
|
public void CheckExpression(Expression expression, string methodName)
|
||||||
{
|
{
|
||||||
if (IsSingle() == false&& this.JoinExpression!=null)
|
if (IsSingle() == false && this.JoinExpression != null)
|
||||||
{
|
{
|
||||||
var jsoinParameters = (this.JoinExpression as LambdaExpression).Parameters;
|
var jsoinParameters = (this.JoinExpression as LambdaExpression).Parameters;
|
||||||
var currentParametres = (expression as LambdaExpression).Parameters;
|
var currentParametres = (expression as LambdaExpression).Parameters;
|
||||||
if ((expression as LambdaExpression).Body.ToString() == "True") {
|
if ((expression as LambdaExpression).Body.ToString() == "True")
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (currentParametres != null && currentParametres.Count > 0)
|
if (currentParametres != null && currentParametres.Count > 0)
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace SqlSugar
|
|||||||
public Guid ContextID { get { return this.Context.ContextID; } set { this.Context.ContextID = value; } }
|
public Guid ContextID { get { return this.Context.ContextID; } set { this.Context.ContextID = value; } }
|
||||||
|
|
||||||
|
|
||||||
public MappingTableList MappingTables { get { return _MappingTables; } set { _MappingTables = value; } }
|
public MappingTableList MappingTables { get { return _MappingTables; } set { _MappingTables = value; } }
|
||||||
public MappingColumnList MappingColumns { get { return _MappingColumns; } set { _MappingColumns = value; } }
|
public MappingColumnList MappingColumns { get { return _MappingColumns; } set { _MappingColumns = value; } }
|
||||||
public IgnoreColumnList IgnoreColumns { get { return _IgnoreColumns; } set { _IgnoreColumns = value; } }
|
public IgnoreColumnList IgnoreColumns { get { return _IgnoreColumns; } set { _IgnoreColumns = value; } }
|
||||||
public IgnoreColumnList IgnoreInsertColumns { get { return _IgnoreInsertColumns; } set { _IgnoreInsertColumns = value; } }
|
public IgnoreColumnList IgnoreInsertColumns { get { return _IgnoreInsertColumns; } set { _IgnoreInsertColumns = value; } }
|
||||||
@@ -297,25 +297,25 @@ namespace SqlSugar
|
|||||||
where T : class, new()
|
where T : class, new()
|
||||||
where T2 : class, new()
|
where T2 : class, new()
|
||||||
{
|
{
|
||||||
return this.Context.Queryable(joinQueryable1, joinQueryable2, joinExpression);
|
return this.Context.Queryable(joinQueryable1, joinQueryable2, joinExpression).With(SqlWith.Null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T, T2> Queryable<T, T2>(ISugarQueryable<T> joinQueryable1, ISugarQueryable<T2> joinQueryable2, JoinType joinType, Expression<Func<T, T2, bool>> joinExpression)
|
public ISugarQueryable<T, T2> Queryable<T, T2>(ISugarQueryable<T> joinQueryable1, ISugarQueryable<T2> joinQueryable2, JoinType joinType, Expression<Func<T, T2, bool>> joinExpression)
|
||||||
where T : class, new()
|
where T : class, new()
|
||||||
where T2 : class, new()
|
where T2 : class, new()
|
||||||
{
|
{
|
||||||
return this.Context.Queryable(joinQueryable1, joinQueryable2, joinType, joinExpression);
|
return this.Context.Queryable(joinQueryable1, joinQueryable2, joinType, joinExpression).With(SqlWith.Null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ISugarQueryable<T, T2, T3> Queryable<T, T2,T3>(ISugarQueryable<T> joinQueryable1, ISugarQueryable<T2> joinQueryable2, ISugarQueryable<T3> joinQueryable3,
|
public ISugarQueryable<T, T2, T3> Queryable<T, T2, T3>(ISugarQueryable<T> joinQueryable1, ISugarQueryable<T2> joinQueryable2, ISugarQueryable<T3> joinQueryable3,
|
||||||
JoinType joinType1, Expression<Func<T, T2,T3, bool>> joinExpression1,
|
JoinType joinType1, Expression<Func<T, T2, T3, bool>> joinExpression1,
|
||||||
JoinType joinType2, Expression<Func<T, T2,T3, bool>> joinExpression2)
|
JoinType joinType2, Expression<Func<T, T2, T3, bool>> joinExpression2)
|
||||||
where T : class, new()
|
where T : class, new()
|
||||||
where T2 : class, new()
|
where T2 : class, new()
|
||||||
where T3 : class, new()
|
where T3 : class, new()
|
||||||
{
|
{
|
||||||
return this.Context.Queryable(joinQueryable1, joinQueryable2,joinQueryable3, joinType1, joinExpression1,joinType2,joinExpression2);
|
return this.Context.Queryable(joinQueryable1, joinQueryable2, joinQueryable3, joinType1, joinExpression1, joinType2, joinExpression2).With(SqlWith.Null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -539,7 +539,7 @@ namespace SqlSugar
|
|||||||
public IDbFirst DbFirst => this.Context.DbFirst;
|
public IDbFirst DbFirst => this.Context.DbFirst;
|
||||||
public IDbMaintenance DbMaintenance => this.Context.DbMaintenance;
|
public IDbMaintenance DbMaintenance => this.Context.DbMaintenance;
|
||||||
public EntityMaintenance EntityMaintenance { get { return this.Context.EntityMaintenance; } set { this.Context.EntityMaintenance = value; } }
|
public EntityMaintenance EntityMaintenance { get { return this.Context.EntityMaintenance; } set { this.Context.EntityMaintenance = value; } }
|
||||||
public QueryFilterProvider QueryFilter { get { return this.Context.QueryFilter; }set { this.Context.QueryFilter = value; } }
|
public QueryFilterProvider QueryFilter { get { return this.Context.QueryFilter; } set { this.Context.QueryFilter = value; } }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region TenantManager
|
#region TenantManager
|
||||||
|
|||||||
Reference in New Issue
Block a user