Update Core

This commit is contained in:
sunkaixuan
2017-09-11 13:42:13 +08:00
parent 8a02be3e8d
commit 7818e6c05d
29 changed files with 1201 additions and 175 deletions

View File

@@ -31,6 +31,9 @@ namespace SqlSugar
public virtual string SqlParameterKeyWord { get { return "@"; } }
public IDbTransaction Transaction { get; set; }
public virtual SqlSugarClient Context { get; set; }
internal CommandType OldCommandType { get; set; }
internal bool OldClearParameters { get; set; }
public IDataParameterCollection DataReaderParameters { get; set; }
public virtual IDbBind DbBind
{
get
@@ -96,7 +99,7 @@ namespace SqlSugar
}
catch (Exception ex)
{
Check.Exception(true,ErrorMessage.ConnnectionOpen, ex.Message);
Check.Exception(true, ErrorMessage.ConnnectionOpen, ex.Message);
}
}
}
@@ -213,7 +216,10 @@ namespace SqlSugar
}
public IAdo UseStoredProcedure()
{
this.OldCommandType = this.CommandType;
this.OldClearParameters = this.IsClearParameters;
this.CommandType = CommandType.StoredProcedure;
this.IsClearParameters = false;
return this;
}
#endregion
@@ -234,12 +240,15 @@ namespace SqlSugar
}
public virtual IDataReader GetDataReader(string sql, params SugarParameter[] parameters)
{
var isSp = this.CommandType == CommandType.StoredProcedure;
if (this.ProcessingEventStartingSQL != null)
ExecuteProcessingSQL(ref sql, parameters);
ExecuteBefore(sql, parameters);
IDbCommand sqlCommand = GetCommand(sql, parameters);
var isAutoClose = this.Context.CurrentConnectionConfig.IsAutoCloseConnection && this.Transaction == null;
IDataReader sqlDataReader = sqlCommand.ExecuteReader(isAutoClose ? CommandBehavior.CloseConnection : CommandBehavior.Default);
if (isSp)
DataReaderParameters = sqlCommand.Parameters;
if (this.IsClearParameters)
sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters);
@@ -385,12 +394,25 @@ namespace SqlSugar
builder.SqlQueryBuilder.sql.Append(sql);
if (parameters != null && parameters.Any())
builder.SqlQueryBuilder.Parameters.AddRange(parameters);
List<T> result = null;
using (var dataReader = this.GetDataReader(builder.SqlQueryBuilder.ToSqlString(), builder.SqlQueryBuilder.Parameters.ToArray()))
{
var reval = this.DbBind.DataReaderToList<T>(typeof(T), dataReader, builder.SqlQueryBuilder.Fields);
result = this.DbBind.DataReaderToList<T>(typeof(T), dataReader, builder.SqlQueryBuilder.Fields);
builder.SqlQueryBuilder.Clear();
return reval;
}
if (this.Context.Ado.DataReaderParameters != null)
{
foreach (IDataParameter item in this.Context.Ado.DataReaderParameters)
{
var parameter = parameters.FirstOrDefault(it => item.ParameterName.Substring(1) == it.ParameterName.Substring(1));
if (parameter != null)
{
parameter.Value = item.Value;
}
}
this.Context.Ado.DataReaderParameters = null;
}
return result;
}
public virtual List<T> SqlQuery<T>(string sql, List<SugarParameter> parameters)
{
@@ -421,17 +443,17 @@ namespace SqlSugar
public virtual dynamic SqlQueryDynamic(string sql, object parameters = null)
{
var dt = this.GetDataTable(sql, parameters);
return dt == null ? null : this.Context.RewritableMethods.DataTableToDynamic(dt);
return dt == null ? null : this.Context.Utilities.DataTableToDynamic(dt);
}
public virtual dynamic SqlQueryDynamic(string sql, params SugarParameter[] parameters)
{
var dt = this.GetDataTable(sql, parameters);
return dt == null ? null : this.Context.RewritableMethods.DataTableToDynamic(dt);
return dt == null ? null : this.Context.Utilities.DataTableToDynamic(dt);
}
public dynamic SqlQueryDynamic(string sql, List<SugarParameter> parameters)
{
var dt = this.GetDataTable(sql, parameters);
return dt == null ? null : this.Context.RewritableMethods.DataTableToDynamic(dt);
return dt == null ? null : this.Context.Utilities.DataTableToDynamic(dt);
}
public virtual DataTable GetDataTable(string sql, params SugarParameter[] parameters)
{
@@ -536,7 +558,7 @@ namespace SqlSugar
}
else
{
action(sql, this.Context.RewritableMethods.SerializeObject(parameters.Select(it => new { key = it.ParameterName, value = it.Value.ObjToString() })));
action(sql, this.Context.Utilities.SerializeObject(parameters.Select(it => new { key = it.ParameterName, value = it.Value.ObjToString() })));
}
}
}
@@ -564,10 +586,17 @@ namespace SqlSugar
}
else
{
action(sql, this.Context.RewritableMethods.SerializeObject(parameters.Select(it => new { key = it.ParameterName, value = it.Value.ObjToString() })));
action(sql, this.Context.Utilities.SerializeObject(parameters.Select(it => new { key = it.ParameterName, value = it.Value.ObjToString() })));
}
}
}
if (this.OldCommandType != 0)
{
this.CommandType = this.OldCommandType;
this.IsClearParameters = this.OldClearParameters;
this.OldCommandType = 0;
this.OldClearParameters = false;
}
}
public virtual SugarParameter[] GetParameters(object parameters, PropertyInfo[] propertyInfo = null)
{

View File

@@ -23,7 +23,7 @@ namespace SqlSugar
public virtual void InitTables(Type entityType)
{
this.Context.RewritableMethods.RemoveCacheAll();
this.Context.Utilities.RemoveCacheAll();
this.Context.InitMppingInfo(entityType);
if (!this.Context.DbMaintenance.IsAnySystemTablePermissions())
{
@@ -66,7 +66,7 @@ namespace SqlSugar
#region Core Logic
protected virtual void Execute(Type entityType)
{
var entityInfo = this.Context.EntityProvider.GetEntityInfo(entityType);
var entityInfo = this.Context.EntityMaintenance.GetEntityInfo(entityType);
var tableName = GetTableName(entityInfo);
var isAny = this.Context.DbMaintenance.IsAnyTable(tableName);
if (isAny)
@@ -208,7 +208,7 @@ namespace SqlSugar
}
protected virtual string GetTableName(EntityInfo entityInfo)
{
return this.Context.EntityProvider.GetTableName(entityInfo.EntityName);
return this.Context.EntityMaintenance.GetTableName(entityInfo.EntityName);
}
protected virtual DbColumnInfo EntityColumnToDbColumn(EntityInfo entityInfo, string tableName, EntityColumnInfo item)
{

View File

@@ -10,7 +10,7 @@ namespace SqlSugar
protected List<T> GetEntityList<T>(SqlSugarClient context, IDataReader dataReader, string fields)
{
Type type = typeof(T);
var cacheManager = context.RewritableMethods.GetCacheInstance<IDataReaderEntityBuilder<T>>();
var cacheManager = context.Utilities.GetCacheInstance<IDataReaderEntityBuilder<T>>();
string key = "DataReaderToList." + fields + context.CurrentConnectionConfig.DbType + type.FullName;
IDataReaderEntityBuilder<T> entytyList = null;
if (cacheManager.ContainsKey(key))

View File

@@ -260,7 +260,7 @@ namespace SqlSugar
case CSharpDataType.Guid:
CheckType(bind.GuidThrow, bindProperyTypeName, validPropertyName, propertyName);
if (bindProperyTypeName == "guid")
method = isNullableType ? getConvertGuid : getStringGuid;
method = isNullableType ? getConvertGuid : getGuid;
break;
case CSharpDataType.@byte:
if (bindProperyTypeName == "byte")

View File

@@ -39,13 +39,13 @@ namespace SqlSugar
public void Init()
{
this.Context.RewritableMethods.RemoveCacheAll();
this.Context.Utilities.RemoveCacheAll();
if (!this.Context.DbMaintenance.IsAnySystemTablePermissions())
{
Check.Exception(true, "Dbfirst and Codefirst requires system table permissions");
}
this.TableInfoList = this.Context.RewritableMethods.TranslateCopy(this.Context.DbMaintenance.GetTableInfoList());
var viewList = this.Context.RewritableMethods.TranslateCopy(this.Context.DbMaintenance.GetViewInfoList());
this.TableInfoList = this.Context.Utilities.TranslateCopy(this.Context.DbMaintenance.GetTableInfoList());
var viewList = this.Context.Utilities.TranslateCopy(this.Context.DbMaintenance.GetViewInfoList());
if (viewList.IsValuable())
{
this.TableInfoList.AddRange(viewList);
@@ -137,6 +137,12 @@ namespace SqlSugar
foreach (var tableInfo in this.TableInfoList)
{
var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(tableInfo.Name);
if (this.Context.IgnoreColumns.IsValuable()) {
var entityName = this.Context.EntityMaintenance.GetEntityName(tableInfo.Name);
columns = columns.Where(c =>
!this.Context.IgnoreColumns.Any(ig => ig.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase)&&c.DbColumnName==ig.PropertyName)
).ToList();
}
string className = tableInfo.Name;
string classText = this.ClassTemplate;
string ConstructorText = IsDefaultValue ? this.ConstructorTemplate : null;

View File

@@ -41,7 +41,7 @@ namespace SqlSugar
{
string cacheKey = "DbMaintenanceProvider.GetIsIdentities" + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
cacheKey = GetCacheKey(cacheKey);
return this.Context.RewritableMethods.GetCacheInstance<List<string>>().Func(cacheKey,
return this.Context.Utilities.GetCacheInstance<List<string>>().Func(cacheKey,
(cm, key) =>
{
return cm[cacheKey];
@@ -56,7 +56,7 @@ namespace SqlSugar
{
string cacheKey = "DbMaintenanceProvider.GetPrimaries" + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
cacheKey = GetCacheKey(cacheKey);
return this.Context.RewritableMethods.GetCacheInstance<List<string>>().Func(cacheKey,
return this.Context.Utilities.GetCacheInstance<List<string>>().Func(cacheKey,
(cm, key) =>
{
return cm[cacheKey];
@@ -216,7 +216,7 @@ namespace SqlSugar
#region Private
private List<T> GetListOrCache<T>(string cacheKey, string sql)
{
return this.Context.RewritableMethods.GetCacheInstance<List<T>>().Func(cacheKey,
return this.Context.Utilities.GetCacheInstance<List<T>>().Func(cacheKey,
(cm, key) =>
{
return cm[cacheKey];

View File

@@ -19,12 +19,12 @@ namespace SqlSugar
{
get
{
return this.Context.EntityProvider.GetEntityInfo<T>();
return this.Context.EntityMaintenance.GetEntityInfo<T>();
}
}
public int ExecuteCommand()
{
DeleteBuilder.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
DeleteBuilder.EntityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
string sql = DeleteBuilder.ToSqlString();
var paramters = DeleteBuilder.Parameters == null ? null : DeleteBuilder.Parameters.ToArray();
RestoreMapping();
@@ -45,7 +45,7 @@ namespace SqlSugar
var entityName = typeof(T).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables.Add(entityName, tableName);
return this; ;
}
@@ -57,7 +57,7 @@ namespace SqlSugar
Where(SqlBuilder.SqlFalse);
return this;
}
string tableName = this.Context.EntityProvider.GetTableName<T>();
string tableName = this.Context.EntityMaintenance.GetTableName<T>();
var primaryFields = this.GetPrimaryKeys();
var isSinglePrimaryKey = primaryFields.Count == 1;
Check.ArgumentNullException(primaryFields, string.Format("Table {0} with no primarykey", tableName));
@@ -67,7 +67,7 @@ namespace SqlSugar
var primaryField = primaryFields.Single();
foreach (var deleteObj in deleteObjs)
{
var entityPropertyName = this.Context.EntityProvider.GetPropertyName<T>(primaryField);
var entityPropertyName = this.Context.EntityMaintenance.GetPropertyName<T>(primaryField);
var columnInfo = EntityInfo.Columns.Single(it => it.PropertyName.Equals(entityPropertyName, StringComparison.CurrentCultureIgnoreCase));
var value = columnInfo.PropertyInfo.GetValue(deleteObj, null);
primaryKeyValues.Add(value);
@@ -102,7 +102,7 @@ namespace SqlSugar
{
if (i == 0)
andString.Append(DeleteBuilder.WhereInAndTemplate + UtilConstants.Space);
var entityPropertyName = this.Context.EntityProvider.GetPropertyName<T>(primaryField);
var entityPropertyName = this.Context.EntityMaintenance.GetPropertyName<T>(primaryField);
var columnInfo = EntityInfo.Columns.Single(it => it.PropertyName == entityPropertyName);
var entityValue = columnInfo.PropertyInfo.GetValue(deleteObj, null);
andString.AppendFormat(DeleteBuilder.WhereInEqualTemplate, primaryField, entityValue);
@@ -176,7 +176,7 @@ namespace SqlSugar
Where(SqlBuilder.SqlFalse);
return this;
}
string tableName = this.Context.EntityProvider.GetTableName<T>();
string tableName = this.Context.EntityMaintenance.GetTableName<T>();
string primaryField = null;
primaryField = GetPrimaryKeys().FirstOrDefault();
Check.ArgumentNullException(primaryField, "Table " + tableName + " with no primarykey");
@@ -209,7 +209,7 @@ namespace SqlSugar
public KeyValuePair<string, List<SugarParameter>> ToSql()
{
DeleteBuilder.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
DeleteBuilder.EntityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
string sql = DeleteBuilder.ToSqlString();
var paramters = DeleteBuilder.Parameters == null ? null : DeleteBuilder.Parameters.ToList();
RestoreMapping();
@@ -220,7 +220,7 @@ namespace SqlSugar
{
if (this.Context.IsSystemTablesConfig)
{
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName));
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityMaintenance.GetTableName(this.EntityInfo.EntityName));
}
else
{
@@ -232,7 +232,7 @@ namespace SqlSugar
{
if (this.Context.IsSystemTablesConfig)
{
return this.Context.DbMaintenance.GetIsIdentities(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName));
return this.Context.DbMaintenance.GetIsIdentities(this.Context.EntityMaintenance.GetTableName(this.EntityInfo.EntityName));
}
else
{
@@ -249,12 +249,8 @@ namespace SqlSugar
}
private IDeleteable<T> CopyDeleteable() {
var asyncContext = this.Context.CopyContext(this.Context.RewritableMethods.TranslateCopy(this.Context.CurrentConnectionConfig));
var asyncContext = this.Context.Utilities.CopyContext(this.Context,true);
asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true;
asyncContext.Ado.IsEnableLogEvent = this.Context.Ado.IsEnableLogEvent;
asyncContext.Ado.LogEventStarting = this.Context.Ado.LogEventStarting;
asyncContext.Ado.LogEventCompleted = this.Context.Ado.LogEventCompleted;
asyncContext.Ado.ProcessingEventStartingSQL = this.Context.Ado.ProcessingEventStartingSQL;
var asyncDeleteable = asyncContext.Deleteable<T>();
var asyncDeleteBuilder = asyncDeleteable.DeleteBuilder;

View File

@@ -0,0 +1,153 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace SqlSugar
{
public class EntityMaintenance
{
public SqlSugarClient Context { get; set; }
public EntityInfo GetEntityInfo<T>()
{
return GetEntityInfo(typeof(T));
}
public EntityInfo GetEntityInfo(Type type)
{
string cacheKey = "GetEntityInfo" + type.FullName;
return this.Context.Utilities.GetCacheInstance<EntityInfo>().Func(cacheKey,
(cm, key) =>
{
return cm[cacheKey];
}, (cm, key) =>
{
EntityInfo result = new EntityInfo();
var sugarAttributeInfo = type.GetTypeInfo().GetCustomAttributes(typeof(SugarTable), true).Where(it => it is SugarTable).SingleOrDefault();
if (sugarAttributeInfo.IsValuable())
{
var sugarTable = (SugarTable)sugarAttributeInfo;
result.DbTableName = sugarTable.TableName;
}
result.Type = type;
result.EntityName = result.Type.Name;
result.Columns = new List<EntityColumnInfo>();
SetColumns(result);
return result;
});
}
public string GetTableName<T>()
{
var typeName = typeof(T).Name;
if (this.Context.MappingTables == null || this.Context.MappingTables.Count == 0) return typeName;
else
{
var mappingInfo = this.Context.MappingTables.SingleOrDefault(it => it.EntityName == typeName);
return mappingInfo == null ? typeName : mappingInfo.DbTableName;
}
}
public string GetTableName(Type entityType)
{
var typeName = entityType.Name;
if (this.Context.MappingTables == null || this.Context.MappingTables.Count == 0) return typeName;
else
{
var mappingInfo = this.Context.MappingTables.SingleOrDefault(it => it.EntityName == typeName);
return mappingInfo == null ? typeName : mappingInfo.DbTableName;
}
}
public string GetTableName(string entityName)
{
var typeName = entityName;
if (this.Context.MappingTables == null || this.Context.MappingTables.Count == 0) return typeName;
else
{
var mappingInfo = this.Context.MappingTables.SingleOrDefault(it => it.EntityName == typeName);
return mappingInfo == null ? typeName : mappingInfo.DbTableName;
}
}
public string GetEntityName(string tableName)
{
if (this.Context.MappingTables == null || this.Context.MappingTables.Count == 0) return tableName;
else
{
var mappingInfo = this.Context.MappingTables.SingleOrDefault(it => it.DbTableName == tableName);
return mappingInfo == null ? tableName : mappingInfo.EntityName;
}
}
public string GetDbColumnName<T>(string propertyName)
{
var isAny=this.GetEntityInfo<T>().Columns.Any(it => it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
Check.Exception(!isAny, "Property " + propertyName + " is Invalid");
var typeName = typeof(T).Name;
if (this.Context.MappingColumns == null || this.Context.MappingColumns.Count == 0) return propertyName;
else
{
var mappingInfo = this.Context.MappingColumns.SingleOrDefault(it => it.EntityName == typeName && it.PropertyName == propertyName);
return mappingInfo == null ? propertyName : mappingInfo.DbColumnName;
}
}
public string GetPropertyName<T>(string dbColumnName)
{
var typeName = typeof(T).Name;
if (this.Context.MappingColumns == null || this.Context.MappingColumns.Count == 0) return dbColumnName;
else
{
var mappingInfo = this.Context.MappingColumns.SingleOrDefault(it => it.EntityName == typeName && it.DbColumnName == dbColumnName);
return mappingInfo == null ? dbColumnName : mappingInfo.PropertyName;
}
}
public PropertyInfo GetProperty<T>(string dbColumnName)
{
var propertyName = GetPropertyName<T>(dbColumnName);
return typeof(T).GetProperties().First(it => it.Name == propertyName);
}
#region Primary key
private static void SetColumns(EntityInfo result)
{
foreach (var property in result.Type.GetProperties())
{
EntityColumnInfo column = new EntityColumnInfo();
//var isVirtual = property.GetGetMethod().IsVirtual;
//if (isVirtual) continue;
var sugarColumn = property.GetCustomAttributes(typeof(SugarColumn), true)
.Where(it => it is SugarColumn)
.Select(it => (SugarColumn)it)
.FirstOrDefault();
column.DbTableName = result.DbTableName;
column.EntityName = result.EntityName;
column.PropertyName = property.Name;
column.PropertyInfo = property;
if (sugarColumn.IsNullOrEmpty())
{
column.DbColumnName = property.Name;
}
else
{
if (sugarColumn.IsIgnore == false)
{
column.DbColumnName = sugarColumn.ColumnName.IsNullOrEmpty() ? property.Name : sugarColumn.ColumnName;
column.IsPrimarykey = sugarColumn.IsPrimaryKey;
column.IsIdentity = sugarColumn.IsIdentity;
column.ColumnDescription = sugarColumn.ColumnDescription;
column.IsNullable = sugarColumn.IsNullable;
column.Length = sugarColumn.Length;
column.OldDbColumnName = sugarColumn.OldColumnName;
column.DataType = sugarColumn.ColumnDataType;
column.DecimalDigits = sugarColumn.DecimalDigits;
}
else
{
column.IsIgnore = true;
}
}
result.Columns.Add(column);
}
}
#endregion
}
}

View File

@@ -79,7 +79,7 @@ namespace SqlSugar
setValue = idValue;
else
setValue = Convert.ToInt32(idValue);
this.Context.EntityProvider.GetProperty<T>(identityKey).SetValue(result,setValue, null);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result,setValue, null);
return idValue>0;
}
public Task<int> ExecuteCommandAsync()
@@ -140,7 +140,7 @@ namespace SqlSugar
var entityName = typeof(T).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables.Add(entityName, tableName);
return this; ;
}
@@ -280,7 +280,7 @@ namespace SqlSugar
{
if (this.Context.IsSystemTablesConfig)
{
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName));
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityMaintenance.GetTableName(this.EntityInfo.EntityName));
}
else
{
@@ -291,7 +291,7 @@ namespace SqlSugar
{
if (this.Context.IsSystemTablesConfig)
{
return this.Context.DbMaintenance.GetIsIdentities(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName));
return this.Context.DbMaintenance.GetIsIdentities(this.Context.EntityMaintenance.GetTableName(this.EntityInfo.EntityName));
}
else
{
@@ -307,12 +307,8 @@ namespace SqlSugar
}
private IInsertable<T> CopyInsertable()
{
var asyncContext = this.Context.CopyContext(this.Context.RewritableMethods.TranslateCopy(this.Context.CurrentConnectionConfig));
var asyncContext = this.Context.Utilities.CopyContext(this.Context,true);
asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true;
asyncContext.Ado.IsEnableLogEvent = this.Context.Ado.IsEnableLogEvent;
asyncContext.Ado.LogEventStarting = this.Context.Ado.LogEventStarting;
asyncContext.Ado.LogEventCompleted = this.Context.Ado.LogEventCompleted;
asyncContext.Ado.ProcessingEventStartingSQL = this.Context.Ado.ProcessingEventStartingSQL;
var asyncInsertable = asyncContext.Insertable<T>(this.InsertObjs);
var asyncInsertableBuilder = asyncInsertable.InsertBuilder;

View File

@@ -29,7 +29,8 @@ namespace SqlSugar
{
return this.SqlBuilder.QueryBuilder;
}
set {
set
{
this.SqlBuilder.QueryBuilder = value;
}
}
@@ -37,7 +38,7 @@ namespace SqlSugar
{
get
{
return this.Context.EntityProvider.GetEntityInfo<T>();
return this.Context.EntityMaintenance.GetEntityInfo<T>();
}
}
public void Clear()
@@ -48,22 +49,12 @@ namespace SqlSugar
public virtual ISugarQueryable<T> AS<T2>(string tableName)
{
var entityName = typeof(T2).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables.Add(entityName, tableName);
this.QueryableMappingTableList = this.Context.MappingTables;
return this;
return _As(tableName, entityName);
}
public ISugarQueryable<T> AS(string tableName)
{
var entityName = typeof(T).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables.Add(entityName, tableName);
this.QueryableMappingTableList = this.Context.MappingTables;
return this;
return _As(tableName, entityName);
}
public virtual ISugarQueryable<T> With(string withString)
{
@@ -73,16 +64,7 @@ namespace SqlSugar
public virtual ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
if (this.Context.QueryFilter.GeFilterList.IsValuable() && FilterName.IsValuable())
{
var list = this.Context.QueryFilter.GeFilterList.Where(it => it.FilterName == FilterName && it.IsJoinQuery == !QueryBuilder.IsSingle());
foreach (var item in list)
{
var filterResult = item.FilterValue(this.Context);
Where(SqlBuilder.AppendWhereOrAnd(QueryBuilder.WhereInfos.IsNullOrEmpty(), filterResult.Sql), filterResult.Parameters);
}
}
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
@@ -98,6 +80,12 @@ namespace SqlSugar
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public virtual ISugarQueryable<T> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public virtual ISugarQueryable<T> AddParameters(SugarParameter parameter)
{
if (parameter != null)
@@ -120,7 +108,6 @@ namespace SqlSugar
});
return this;
}
public virtual ISugarQueryable<T> Where(Expression<Func<T, bool>> expression)
{
this._Where(expression);
@@ -363,7 +350,9 @@ namespace SqlSugar
public virtual T Single(Expression<Func<T, bool>> expression)
{
_Where(expression);
return Single();
var result = Single();
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result;
}
public virtual T First()
@@ -387,7 +376,9 @@ namespace SqlSugar
public virtual T First(Expression<Func<T, bool>> expression)
{
_Where(expression);
return First();
var result = First();
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result;
}
public virtual bool Any(Expression<Func<T, bool>> expression)
@@ -440,6 +431,13 @@ namespace SqlSugar
QueryBuilder.IsCount = false;
return reval;
}
public virtual int Count(Expression<Func<T, bool>> expression)
{
_Where(expression);
var result = Count();
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result;
}
public virtual TResult Max<TResult>(string maxField)
{
@@ -486,15 +484,15 @@ namespace SqlSugar
}
public virtual string ToJson()
{
return this.Context.RewritableMethods.SerializeObject(this.ToList());
return this.Context.Utilities.SerializeObject(this.ToList());
}
public virtual string ToJsonPage(int pageIndex, int pageSize)
{
return this.Context.RewritableMethods.SerializeObject(this.ToPageList(pageIndex, pageSize));
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize));
}
public virtual string ToJsonPage(int pageIndex, int pageSize, ref int totalNumber)
{
return this.Context.RewritableMethods.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber));
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber));
}
public virtual DataTable ToDataTable()
@@ -649,7 +647,16 @@ namespace SqlSugar
result.Start();
return result;
}
public Task<int> CountAsync(Expression<Func<T, bool>> expression)
{
Task<int> result = new Task<int>(() =>
{
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Count(expression);
});
result.Start();
return result;
}
public Task<TResult> MaxAsync<TResult>(string maxField)
{
Task<TResult> result = new Task<TResult>(() =>
@@ -765,19 +772,19 @@ namespace SqlSugar
Task<string> result = new Task<string>(() =>
{
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.ToJsonPage(pageIndex,pageSize);
return asyncQueryable.ToJsonPage(pageIndex, pageSize);
});
result.Start();
return result;
}
public Task<KeyValuePair<string,int>> ToJsonPageAsync(int pageIndex, int pageSize, int totalNumber)
public Task<KeyValuePair<string, int>> ToJsonPageAsync(int pageIndex, int pageSize, int totalNumber)
{
Task<KeyValuePair<string, int>> result = new Task<KeyValuePair<string, int>>(() =>
{
int totalNumberAsync = 0;
ISugarQueryable<T> asyncQueryable = CopyQueryable();
var list= asyncQueryable.ToJsonPage(pageIndex, pageSize,ref totalNumberAsync);
var list = asyncQueryable.ToJsonPage(pageIndex, pageSize, ref totalNumberAsync);
return new KeyValuePair<string, int>(list, totalNumberAsync);
});
result.Start();
@@ -806,7 +813,7 @@ namespace SqlSugar
return result;
}
public Task<KeyValuePair<DataTable, int>> ToDataTablePageAsync(int pageIndex, int pageSize,int totalNumber)
public Task<KeyValuePair<DataTable, int>> ToDataTablePageAsync(int pageIndex, int pageSize, int totalNumber)
{
Task<KeyValuePair<DataTable, int>> result = new Task<KeyValuePair<DataTable, int>>(() =>
{
@@ -911,6 +918,28 @@ namespace SqlSugar
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
return Sum<TResult>(lamResult.GetResultString());
}
protected ISugarQueryable<T> _As(string tableName, string entityName)
{
IsAs = true;
OldMappingTableList = this.Context.MappingTables;
this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables.Add(entityName, tableName);
this.QueryableMappingTableList = this.Context.MappingTables;
return this;
}
protected void _Filter(string FilterName, bool isDisabledGobalFilter)
{
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
if (this.Context.QueryFilter.GeFilterList.IsValuable() && FilterName.IsValuable())
{
var list = this.Context.QueryFilter.GeFilterList.Where(it => it.FilterName == FilterName && it.IsJoinQuery == !QueryBuilder.IsSingle());
foreach (var item in list)
{
var filterResult = item.FilterValue(this.Context);
Where(SqlBuilder.AppendWhereOrAnd(QueryBuilder.WhereInfos.IsNullOrEmpty(), filterResult.Sql), filterResult.Parameters);
}
}
}
public ISugarQueryable<T> _PartitionBy(Expression expression)
{
LambdaExpression lambda = expression as LambdaExpression;
@@ -948,11 +977,11 @@ namespace SqlSugar
{
if (typeof(TResult) == typeof(ExpandoObject))
{
return this.Context.RewritableMethods.DataReaderToExpandoObjectList(dataReader) as List<TResult>;
return this.Context.Utilities.DataReaderToExpandoObjectList(dataReader) as List<TResult>;
}
if (entityType.IsAnonymousType() || isComplexModel)
{
result = this.Context.RewritableMethods.DataReaderToDynamicList<TResult>(dataReader);
result = this.Context.Utilities.DataReaderToDynamicList<TResult>(dataReader);
}
else
{
@@ -983,7 +1012,7 @@ namespace SqlSugar
{
if (this.Context.IsSystemTablesConfig)
{
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName));
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityMaintenance.GetTableName(this.EntityInfo.EntityName));
}
else
{
@@ -1024,9 +1053,7 @@ namespace SqlSugar
foreach (var item in result)
{
var contextProperty = item.GetType().GetProperty("Context");
ConnectionConfig config = new ConnectionConfig();
config = this.Context.CurrentConnectionConfig;
SqlSugarClient newClient = this.Context.CopyContext(config);
SqlSugarClient newClient = this.Context.Utilities.CopyContext(this.Context);
contextProperty.SetValue(item, newClient, null);
}
}
@@ -1034,12 +1061,8 @@ namespace SqlSugar
}
private ISugarQueryable<T> CopyQueryable()
{
var asyncContext = this.Context.CopyContext(this.Context.RewritableMethods.TranslateCopy(this.Context.CurrentConnectionConfig));
var asyncContext = this.Context.Utilities.CopyContext(this.Context, true);
asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true;
asyncContext.Ado.IsEnableLogEvent = this.Context.Ado.IsEnableLogEvent;
asyncContext.Ado.LogEventStarting = this.Context.Ado.LogEventStarting;
asyncContext.Ado.LogEventCompleted = this.Context.Ado.LogEventCompleted;
asyncContext.Ado.ProcessingEventStartingSQL = this.Context.Ado.ProcessingEventStartingSQL;
var asyncQueryable = asyncContext.Queryable<ExpandoObject>().Select<T>(string.Empty);
var asyncQueryableBuilder = asyncQueryable.QueryBuilder;
@@ -1179,6 +1202,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T,T2> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T3
@@ -1331,6 +1411,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2,T3> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T4
@@ -1504,6 +1641,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3,T4> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T5
@@ -1703,6 +1897,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4,T5> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T6
@@ -1928,6 +2179,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4, T5,T6> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T7
@@ -2180,6 +2488,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T8
@@ -2458,6 +2823,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T9
@@ -2759,6 +3181,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T10
@@ -3084,6 +3563,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T11
@@ -3434,6 +3970,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
#region T12
@@ -3809,6 +4402,63 @@ namespace SqlSugar
return this;
}
#endregion
#region Other
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> AS<AsT>(string tableName)
{
var entityName = typeof(AsT).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> AS(string tableName)
{
var entityName = typeof(T).Name;
_As(tableName, entityName);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Filter(string FilterName, bool isDisabledGobalFilter = false)
{
_Filter(FilterName, isDisabledGobalFilter);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> AddParameters(object parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> AddParameters(SugarParameter[] parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> AddParameters(List<SugarParameter> parameters)
{
if (parameters != null)
QueryBuilder.Parameters.AddRange(parameters);
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
{
QueryBuilder.JoinIndex = +1;
QueryBuilder.JoinQueryInfos
.Add(new JoinQueryInfo()
{
JoinIndex = QueryBuilder.JoinIndex,
TableName = tableName,
ShortName = shortName,
JoinType = type,
JoinWhere = joinWhere
});
return this;
}
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> With(string withString)
{
base.With(withString);
return this;
}
#endregion
}
#endregion
}

View File

@@ -316,7 +316,7 @@ namespace SqlSugar
this.JoinTemplate,
joinInfo.JoinType.ToString() + UtilConstants.Space,
Builder.GetTranslationTableName(joinInfo.TableName) + UtilConstants.Space,
joinInfo.ShortName + UtilConstants.Space + joinInfo.TableWithString,
joinInfo.ShortName + UtilConstants.Space + TableWithString,
joinInfo.JoinWhere);
}
public virtual void Clear()
@@ -375,7 +375,7 @@ namespace SqlSugar
{
pre = Builder.GetTranslationColumnName(TableShortName) + ".";
}
reval = string.Join(",", this.Context.EntityProvider.GetEntityInfo(this.EntityType).Columns.Where(it => !it.IsIgnore).Select(it => pre + Builder.GetTranslationColumnName(it.EntityName, it.PropertyName)));
reval = string.Join(",", this.Context.EntityMaintenance.GetEntityInfo(this.EntityType).Columns.Where(it => !it.IsIgnore).Select(it => pre + Builder.GetTranslationColumnName(it.EntityName, it.PropertyName)));
}
else
{
@@ -413,14 +413,14 @@ namespace SqlSugar
{
var result = Builder.GetTranslationTableName(EntityName);
result += UtilConstants.Space;
if (this.TableWithString.IsValuable())
{
result += TableWithString + UtilConstants.Space;
}
if (this.TableShortName.IsValuable())
{
result += (TableShortName + UtilConstants.Space);
}
if (this.TableWithString.IsValuable())
{
result += TableWithString + UtilConstants.Space;
}
if (!this.IsSingle())
{
result += GetJoinValueString + UtilConstants.Space;
@@ -468,7 +468,7 @@ namespace SqlSugar
private string GetTableName(string entityName)
{
var result = this.Context.EntityProvider.GetTableName(entityName);
var result = this.Context.EntityMaintenance.GetTableName(entityName);
return this.Builder.GetTranslationTableName(result);
}
}

View File

@@ -48,7 +48,7 @@ namespace SqlSugar
var entityName = typeof(T).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables);
this.Context.MappingTables.Add(entityName, tableName);
return this; ;
}
@@ -94,7 +94,7 @@ namespace SqlSugar
if (this.WhereColumnList == null) this.WhereColumnList = new List<string>();
foreach (var item in whereColumns)
{
this.WhereColumnList.Add(this.Context.EntityProvider.GetDbColumnName<T>(item));
this.WhereColumnList.Add(this.Context.EntityMaintenance.GetDbColumnName<T>(item));
}
return this;
}
@@ -284,7 +284,7 @@ namespace SqlSugar
}
if (this.Context.IsSystemTablesConfig)
{
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName));
return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityMaintenance.GetTableName(this.EntityInfo.EntityName));
}
else
{
@@ -295,7 +295,7 @@ namespace SqlSugar
{
if (this.Context.IsSystemTablesConfig)
{
return this.Context.DbMaintenance.GetIsIdentities(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName));
return this.Context.DbMaintenance.GetIsIdentities(this.Context.EntityMaintenance.GetTableName(this.EntityInfo.EntityName));
}
else
{
@@ -311,12 +311,8 @@ namespace SqlSugar
}
private IUpdateable<T> CopyUpdateable()
{
var asyncContext = this.Context.CopyContext(this.Context.RewritableMethods.TranslateCopy(this.Context.CurrentConnectionConfig));
var asyncContext = this.Context.Utilities.CopyContext(this.Context,true);
asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true;
asyncContext.Ado.IsEnableLogEvent = this.Context.Ado.IsEnableLogEvent;
asyncContext.Ado.LogEventStarting = this.Context.Ado.LogEventStarting;
asyncContext.Ado.LogEventCompleted = this.Context.Ado.LogEventCompleted;
asyncContext.Ado.ProcessingEventStartingSQL = this.Context.Ado.ProcessingEventStartingSQL;
var asyncUpdateable = asyncContext.Updateable<T>(this.UpdateObjs);
var asyncUpdateableBuilder = asyncUpdateable.UpdateBuilder;

View File

@@ -12,6 +12,5 @@ namespace SqlSugar
public string ShortName { get; set; }
public int JoinIndex { get; set; }
public string JoinWhere { get; set; }
public string TableWithString { get; set; }
}
}

View File

@@ -289,5 +289,10 @@ namespace SqlSugar
else
return string.Format("{0}.*", shortName);
}
public virtual string MergeString(params string[] strings)
{
return string.Join("", strings);
}
}
}

View File

@@ -51,5 +51,6 @@ namespace SqlSugar
string True();
string False();
string GuidNew();
string MergeString(params string[] strings);
}
}

View File

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace SqlSugar
{
public class SqlFunc
public partial class SqlFunc
{
public static bool HasNumber(object thisValue)
{

View File

@@ -184,7 +184,8 @@ namespace SqlSugar
}
public virtual bool IsTranslationText(string name)
{
return name.Contains(SqlTranslationLeft) && name.Contains(SqlTranslationRight);
var result = name.IsContainsIn(SqlTranslationLeft, SqlTranslationRight, UtilConstants.Space, ExpressionConst.LeftParenthesis, ExpressionConst.RightParenthesis);
return result;
}
public virtual string GetTranslationText(string name)
{

View File

@@ -14,13 +14,17 @@ namespace SqlSugar
var isLeft = parameter.IsLeft;
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
var expression = base.Expression as MemberExpression;
var childExpression = expression.Expression as MemberExpression;
var childIsMember = childExpression != null;
var isValue = expression.Member.Name == "Value" && expression.Member.DeclaringType.Name == "Nullable`1";
var isBool = expression.Type == UtilConstants.BoolType;
var isValueBool = isValue && isBool && parameter.BaseExpression == null;
var isLength = expression.Member.Name == "Length" && (expression.Expression as MemberExpression).Type == UtilConstants.StringType;
var isLength = expression.Member.Name == "Length" && childIsMember && childExpression.Type == UtilConstants.StringType;
var isDateValue = expression.Member.Name.IsIn(Enum.GetNames(typeof(DateType))) && (expression.Expression as MemberExpression).Type == UtilConstants.DateType;
var isLogicOperator = ExpressionTool.IsLogicOperator(baseParameter.OperatorValue) || baseParameter.OperatorValue.IsNullOrEmpty();
var isHasValue = isLogicOperator && expression.Member.Name == "HasValue" && expression.Expression != null && expression.NodeType == ExpressionType.MemberAccess;
var isDateTimeNowDate = expression.Member.Name == "Date" && childIsMember && childExpression.Member.Name == "Now";
var isDateDate = expression.Member.Name == "Date" && expression.Expression.Type == UtilConstants.DateType;
if (isLength)
{
var oldCommonTempDate = parameter.CommonTempData;
@@ -39,11 +43,12 @@ namespace SqlSugar
parameter.CommonTempData = oldCommonTempDate;
return;
}
else if (isHasValue) {
else if (isHasValue)
{
parameter.CommonTempData = CommonTempDataType.Result;
this.Expression = expression.Expression;
this.Start();
var methodParamter =new MethodCallExpressionArgs() { IsMember = true, MemberName = parameter.CommonTempData, MemberValue = null };
var methodParamter = new MethodCallExpressionArgs() { IsMember = true, MemberName = parameter.CommonTempData, MemberValue = null };
var result = this.Context.DbMehtods.HasValue(new MethodCallExpressionModel()
{
Args = new List<MethodCallExpressionArgs>() {
@@ -81,6 +86,42 @@ namespace SqlSugar
{
expression = expression.Expression as MemberExpression;
}
else if (isDateDate)
{
var name = expression.Member.Name;
var oldCommonTempDate = parameter.CommonTempData;
parameter.CommonTempData = CommonTempDataType.Result;
this.Expression = expression.Expression;
this.Start();
var isConst = parameter.CommonTempData.GetType() == UtilConstants.DateType;
if (isConst)
{
AppendValue(parameter, isLeft, parameter.CommonTempData.ObjToDate().Date);
}
else
{
var GetYear = new MethodCallExpressionModel()
{
Args = new List<MethodCallExpressionArgs>() {
new MethodCallExpressionArgs() { IsMember=true, MemberName=parameter.CommonTempData, MemberValue=parameter.CommonTempData },
new MethodCallExpressionArgs() { MemberName=DateType.Year, MemberValue=DateType.Year}
}
};
AppendMember(parameter, isLeft, GetToDate(this.Context.DbMehtods.MergeString(
this.GetDateValue(parameter.CommonTempData, DateType.Year),
"+'-'+",
this.GetDateValue(parameter.CommonTempData, DateType.Month),
"+'-'+",
this.GetDateValue(parameter.CommonTempData, DateType.Day))));
}
parameter.CommonTempData = oldCommonTempDate;
return;
}
else if (isDateTimeNowDate)
{
AppendValue(parameter, isLeft, DateTime.Now.Date);
return;
}
else if (expression.Expression != null && expression.Expression.NodeType != ExpressionType.Parameter && !isValueBool)
{
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
@@ -223,5 +264,27 @@ namespace SqlSugar
fieldName = Context.GetTranslationColumnName(fieldName);
return fieldName;
}
private string GetDateValue(object value, DateType type)
{
var pars = new MethodCallExpressionModel()
{
Args = new List<MethodCallExpressionArgs>() {
new MethodCallExpressionArgs() { IsMember=true, MemberName=value, MemberValue=value },
new MethodCallExpressionArgs() { MemberName=type, MemberValue=type}
}
};
return this.Context.DbMehtods.DateValue(pars);
}
private string GetToDate(string value)
{
var pars = new MethodCallExpressionModel()
{
Args = new List<MethodCallExpressionArgs>() {
new MethodCallExpressionArgs() { MemberName=value, MemberValue=value },
}
};
return this.Context.DbMehtods.ToDate(pars);
}
}
}

View File

@@ -140,7 +140,14 @@ namespace SqlSugar
model.Args.AddRange(appendArgs);
}
}
parameter.BaseParameter.CommonTempData = GetMdthodValue(name, model);
if (parameter.BaseParameter.BaseParameter.BaseParameter==null)
{
this.Context.Result.Append(GetMdthodValue(name, model));
}
else
{
parameter.BaseParameter.CommonTempData = GetMdthodValue(name, model);
}
}
private void Where(ExpressionParameter parameter, bool? isLeft, string name, IEnumerable<Expression> args, MethodCallExpressionModel model, List<MethodCallExpressionArgs> appendArgs = null)
{

View File

@@ -222,6 +222,20 @@ namespace SqlSugar
return DeserializeObject<T>(jsonString);
}
}
public SqlSugarClient CopyContext(SqlSugarClient context,bool isCopyEvents=false)
{
var newClient = new SqlSugarClient(this.TranslateCopy(context.CurrentConnectionConfig));
newClient.MappingColumns = this.TranslateCopy(context.MappingColumns);
newClient.MappingTables = this.TranslateCopy(context.MappingTables);
newClient.IgnoreColumns = this.TranslateCopy(context.IgnoreColumns);
if (isCopyEvents) {
newClient.Ado.IsEnableLogEvent = context.Ado.IsEnableLogEvent;
newClient.Ado.LogEventStarting = context.Ado.LogEventStarting;
newClient.Ado.LogEventCompleted = context.Ado.LogEventCompleted;
newClient.Ado.ProcessingEventStartingSQL = context.Ado.ProcessingEventStartingSQL;
}
return newClient;
}
#endregion
#region DataTable

View File

@@ -13,6 +13,7 @@ namespace SqlSugar
public SqlSugarClient Context { get; set; }
public ConnectionConfig CurrentConnectionConfig { get; set; }
public Dictionary<string, object> TempItems { get; set; }
public bool IsSystemTablesConfig { get { return this.CurrentConnectionConfig.InitKeyType == InitKeyType.SystemTable; } }
public Guid ContextID { get; set; }
public MappingTableList MappingTables = new MappingTableList();
public MappingColumnList MappingColumns = new MappingColumnList();
@@ -21,7 +22,7 @@ namespace SqlSugar
#region Fields
protected ISqlBuilder _SqlBuilder;
protected EntityProvider _EntityProvider;
protected EntityMaintenance _EntityProvider;
protected IAdo _Ado;
protected ILambdaExpressions _LambdaExpressions;
protected IRewritableMethods _RewritableMethods;
@@ -97,7 +98,7 @@ namespace SqlSugar
public void InitMppingInfo(Type type)
{
string cacheKey = "Context.InitAttributeMappingTables" + type.FullName;
var entityInfo = this.Context.RewritableMethods.GetCacheInstance<EntityInfo>().Func(cacheKey,
var entityInfo = this.Context.Utilities.GetCacheInstance<EntityInfo>().Func(cacheKey,
(cm, key) =>
{
var cacheInfo = cm[key];
@@ -105,7 +106,7 @@ namespace SqlSugar
},
(cm, key) =>
{
var reval = this.Context.EntityProvider.GetEntityInfo(type);
var reval = this.Context.EntityMaintenance.GetEntityInfo(type);
return reval;
});
InitMppingInfo(entityInfo);
@@ -168,7 +169,7 @@ namespace SqlSugar
var reval = new InsertableProvider<T>();
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.CurrentConnectionConfig); ;
reval.Context = this.Context;
reval.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
reval.EntityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
reval.SqlBuilder = sqlBuilder;
reval.InsertObjs = insertObjs;
sqlBuilder.InsertBuilder = reval.InsertBuilder = InstanceFactory.GetInsertBuilder(this.CurrentConnectionConfig);
@@ -195,7 +196,7 @@ namespace SqlSugar
var reval = new UpdateableProvider<T>();
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.CurrentConnectionConfig); ;
reval.Context = this.Context;
reval.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
reval.EntityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
reval.SqlBuilder = sqlBuilder;
reval.UpdateObjs = UpdateObjs;
sqlBuilder.UpdateBuilder = reval.UpdateBuilder = InstanceFactory.GetUpdateBuilder(this.CurrentConnectionConfig);

View File

@@ -20,6 +20,7 @@ namespace SqlSugar
void ExecuteBefore(string sql, SugarParameter[] pars);
void ExecuteAfter(string sql, SugarParameter[] pars);
IDataParameterCollection DataReaderParameters { get; set; }
CommandType CommandType { get; set; }
bool IsEnableLogEvent { get; set; }
Action<string, string> LogEventStarting { get; set; }

View File

@@ -19,8 +19,9 @@ namespace SqlSugar
ISugarQueryable<T> AS(string tableName);
ISugarQueryable<T> With(string withString);
ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter= false);
ISugarQueryable<T> AddParameters(object pars);
ISugarQueryable<T> AddParameters(SugarParameter[] pars);
ISugarQueryable<T> AddParameters(object parameters);
ISugarQueryable<T> AddParameters(SugarParameter[] parameters);
ISugarQueryable<T> AddParameters(List<SugarParameter> parameters);
ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
ISugarQueryable<T> Where(Expression<Func<T, bool>> expression);
@@ -75,6 +76,8 @@ namespace SqlSugar
int Count();
Task<int> CountAsync();
int Count(Expression<Func<T, bool>> expression);
Task<int> CountAsync(Expression<Func<T, bool>> expression);
TResult Max<TResult>(string maxField);
Task<TResult> MaxAsync<TResult>(string maxField);
TResult Max<TResult>(Expression<Func<T, TResult>> expression);
@@ -156,6 +159,17 @@ namespace SqlSugar
new ISugarQueryable<T,T2> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T,T2> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T,T2> AS<AsT>(string tableName);
new ISugarQueryable<T,T2> AS(string tableName);
new ISugarQueryable<T,T2> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T,T2> AddParameters(object parameters);
new ISugarQueryable<T,T2> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T,T2> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T,T2> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3> : ISugarQueryable<T>
{
@@ -201,6 +215,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2,T3> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2,T3> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2,T3> AS<AsT>(string tableName);
new ISugarQueryable<T, T2,T3> AS(string tableName);
new ISugarQueryable<T, T2,T3> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2,T3> AddParameters(object parameters);
new ISugarQueryable<T, T2,T3> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2,T3> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2,T3> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2,T3> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4> : ISugarQueryable<T>
{
@@ -251,6 +276,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3,T4> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3,T4> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3,T4> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3,T4> AS(string tableName);
new ISugarQueryable<T, T2, T3,T4> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3,T4> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3,T4> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3,T4> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3,T4> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3,T4> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5> : ISugarQueryable<T>
{
@@ -307,6 +343,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4,T5> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4,T5> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4,T5> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4,T5> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4,T5> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4,T5> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4,T5> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4,T5> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4,T5> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4,T5> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5, T6> : ISugarQueryable<T>
{
@@ -367,6 +414,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4,T5,T6> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4,T5,T6> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4, T5,T6> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5,T6> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5,T6> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4, T5,T6> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4, T5,T6> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4, T5,T6> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4, T5,T6> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4, T5,T6> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5, T6, T7> : ISugarQueryable<T>
{
@@ -432,6 +490,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> : ISugarQueryable<T>
{
@@ -502,6 +571,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> With(string withString);
#endregion
}
#region 9-12
@@ -579,6 +659,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9,T10> : ISugarQueryable<T>
{
@@ -659,6 +750,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9,T10,T11> : ISugarQueryable<T>
{
@@ -744,6 +846,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> With(string withString);
#endregion
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9,T10,T11,T12> : ISugarQueryable<T>
{
@@ -834,6 +947,17 @@ namespace SqlSugar
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
#endregion
#region Other
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> AS<AsT>(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> AS(string tableName);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> Filter(string FilterName, bool isDisabledGobalFilter = false);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> AddParameters(object parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> AddParameters(SugarParameter[] parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> AddParameters(List<SugarParameter> parameters);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> With(string withString);
#endregion ,T12
}
#endregion
}

View File

@@ -16,6 +16,7 @@ namespace SqlSugar
string SerializeObject(object value);
T DeserializeObject<T>(string value);
T TranslateCopy<T>(T sourceObject);
SqlSugarClient CopyContext(SqlSugarClient context, bool isCopyEvents = false);
dynamic DataTableToDynamic(DataTable table);
ICacheManager<T> GetCacheInstance<T>();
void RemoveCacheAll();

View File

@@ -119,6 +119,9 @@ namespace SqlSugar
var parameter = model.Args[0];
return string.Format(" LENGTH({0})", parameter.MemberName);
}
public override string MergeString(params string[] strings)
{
return " concat("+string.Join(",", strings).Replace("+", "") + ") ";
}
}
}

View File

@@ -191,5 +191,10 @@ namespace SqlSugar
}
return string.Format(" Cast((JulianDay({0}) - JulianDay({1})) *{2} As INTEGER)", parameter, parameter2, time);
}
public override string MergeString(params string[] strings)
{
return string.Join("||", strings).Replace("+","");
}
}
}

View File

@@ -16,15 +16,6 @@ namespace SqlSugar
/// </summary>
public partial class SqlSugarClient : SqlSugarAccessory, IDisposable
{
#region Properties
public bool IsSystemTablesConfig
{
get
{
return this.CurrentConnectionConfig.InitKeyType == InitKeyType.SystemTable;
}
}
#endregion
#region Constructor
public SqlSugarClient(ConnectionConfig config)
@@ -59,24 +50,22 @@ namespace SqlSugar
}
#endregion
#region Rewritable Methods
/// <summary>
/// Rewritable Methods
/// </summary>
#region Util Methods
[Obsolete("Use SqlSugarClient.Utilities")]
public virtual IRewritableMethods RewritableMethods
{
get { return this.Utilities; }
set { this.Utilities = value; }
}
public virtual IRewritableMethods Utilities
{
get
{
if (base._RewritableMethods == null)
{
base._RewritableMethods = new RewritableMethods();
}
return _RewritableMethods;
}
set
{
base._RewritableMethods = value;
}
set { base._RewritableMethods = value; }
}
#endregion
@@ -152,7 +141,7 @@ namespace SqlSugar
}
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7> Queryable<T, T2, T3, T4, T5, T6, T7>(Expression<Func<T, T2, T3, T4, T5, T6, T7, object[]>> joinExpression) where T : class, new()
{
InitMppingInfo<T, T2, T3, T4, T5, T6,T7>();
InitMppingInfo<T, T2, T3, T4, T5, T6, T7>();
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7) };
var queryable = InstanceFactory.GetQueryable<T, T2, T3, T4, T5, T6, T7>(base.CurrentConnectionConfig);
base.CreateQueryJoin(joinExpression, types, queryable);
@@ -160,7 +149,7 @@ namespace SqlSugar
}
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> Queryable<T, T2, T3, T4, T5, T6, T7, T8>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, object[]>> joinExpression) where T : class, new()
{
InitMppingInfo<T, T2, T3, T4, T5, T6,T7, T8>();
InitMppingInfo<T, T2, T3, T4, T5, T6, T7, T8>();
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8) };
var queryable = InstanceFactory.GetQueryable<T, T2, T3, T4, T5, T6, T7, T8>(base.CurrentConnectionConfig);
base.CreateQueryJoin(joinExpression, types, queryable);
@@ -169,7 +158,7 @@ namespace SqlSugar
#region 9-12
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, object[]>> joinExpression) where T : class, new()
{
InitMppingInfo<T, T2, T3, T4, T5, T6,T7, T8, T9>();
InitMppingInfo<T, T2, T3, T4, T5, T6, T7, T8, T9>();
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9) };
var queryable = InstanceFactory.GetQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9>(base.CurrentConnectionConfig);
base.CreateQueryJoin(joinExpression, types, queryable);
@@ -177,7 +166,7 @@ namespace SqlSugar
}
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, object[]>> joinExpression) where T : class, new()
{
InitMppingInfo<T, T2, T3, T4, T5, T6, T7,T8, T9, T10>();
InitMppingInfo<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>();
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9), typeof(T10) };
var queryable = InstanceFactory.GetQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>(base.CurrentConnectionConfig);
base.CreateQueryJoin(joinExpression, types, queryable);
@@ -185,7 +174,7 @@ namespace SqlSugar
}
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, object[]>> joinExpression) where T : class, new()
{
InitMppingInfo<T, T2, T3, T4, T5, T6,T7, T8, T9, T10, T11>();
InitMppingInfo<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>();
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9), typeof(T10), typeof(T11) };
var queryable = InstanceFactory.GetQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(base.CurrentConnectionConfig);
base.CreateQueryJoin(joinExpression, types, queryable);
@@ -193,7 +182,7 @@ namespace SqlSugar
}
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, object[]>> joinExpression) where T : class, new()
{
InitMppingInfo<T, T2, T3, T4, T5, T6,T7, T8, T9, T10, T11, T12>();
InitMppingInfo<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>();
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9), typeof(T10), typeof(T11), typeof(T12) };
var queryable = InstanceFactory.GetQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(base.CurrentConnectionConfig);
base.CreateQueryJoin(joinExpression, types, queryable);
@@ -352,7 +341,7 @@ namespace SqlSugar
{
InitMppingInfo<T>();
Check.Exception(columnDictionary == null || columnDictionary.Count == 0, "Insertable.columnDictionary can't be null");
var insertObject = this.RewritableMethods.DeserializeObject<T>(this.RewritableMethods.SerializeObject(columnDictionary));
var insertObject = this.Utilities.DeserializeObject<T>(this.Utilities.SerializeObject(columnDictionary));
var columns = columnDictionary.Select(it => it.Key).ToList();
return this.Insertable(insertObject).InsertColumns(it => columns.Any(c => it.Equals(c, StringComparison.CurrentCultureIgnoreCase))); ;
}
@@ -367,7 +356,7 @@ namespace SqlSugar
{
var columns = ((object)insertDynamicObject).GetType().GetProperties().Select(it => it.Name).ToList();
Check.Exception(columns.IsNullOrEmpty(), "Insertable.updateDynamicObject can't be null");
T insertObject = this.RewritableMethods.DeserializeObject<T>(this.RewritableMethods.SerializeObject(insertDynamicObject));
T insertObject = this.Utilities.DeserializeObject<T>(this.Utilities.SerializeObject(insertDynamicObject));
return this.Insertable(insertObject).InsertColumns(it => columns.Any(c => it.Equals(c, StringComparison.CurrentCultureIgnoreCase)));
}
}
@@ -436,7 +425,7 @@ namespace SqlSugar
{
InitMppingInfo<T>();
Check.Exception(columnDictionary == null || columnDictionary.Count == 0, "Updateable.columnDictionary can't be null");
var updateObject = this.RewritableMethods.DeserializeObject<T>(this.RewritableMethods.SerializeObject(columnDictionary));
var updateObject = this.Utilities.DeserializeObject<T>(this.Utilities.SerializeObject(columnDictionary));
var columns = columnDictionary.Select(it => it.Key).ToList();
return this.Updateable(updateObject).UpdateColumns(it => columns.Any(c => it.Equals(c, StringComparison.CurrentCultureIgnoreCase))); ;
}
@@ -451,7 +440,7 @@ namespace SqlSugar
{
var columns = ((object)updateDynamicObject).GetType().GetProperties().Select(it => it.Name).ToList();
Check.Exception(columns.IsNullOrEmpty(), "Updateable.updateDynamicObject can't be null");
T updateObject = this.RewritableMethods.DeserializeObject<T>(this.RewritableMethods.SerializeObject(updateDynamicObject));
T updateObject = this.Utilities.DeserializeObject<T>(this.Utilities.SerializeObject(updateDynamicObject));
return this.Updateable(updateObject).UpdateColumns(it => columns.Any(c => it.Equals(c, StringComparison.CurrentCultureIgnoreCase))); ;
}
}
@@ -499,21 +488,24 @@ namespace SqlSugar
#endregion
#region Entity Methods
public virtual EntityProvider EntityProvider
[Obsolete("Use SqlSugarClient.EntityMaintenance")]
public virtual EntityMaintenance EntityProvider
{
get { return this.EntityMaintenance; }
set { this.EntityMaintenance = value; }
}
public virtual EntityMaintenance EntityMaintenance
{
get
{
if (base._EntityProvider == null)
{
base._EntityProvider = new EntityProvider();
base._EntityProvider = new EntityMaintenance();
base._EntityProvider.Context = this;
}
return _EntityProvider;
}
set
{
base._EntityProvider = value;
}
set { base._EntityProvider = value; }
}
#endregion
@@ -529,10 +521,7 @@ namespace SqlSugar
}
return _QueryFilterProvider;
}
set
{
base._QueryFilterProvider = value;
}
set { base._QueryFilterProvider = value; }
}
#endregion
@@ -542,9 +531,7 @@ namespace SqlSugar
get
{
if (_SimpleClient == null)
{
_SimpleClient = new SimpleClient(this);
}
return _SimpleClient;
}
}
@@ -554,24 +541,12 @@ namespace SqlSugar
public virtual void Close()
{
if (this.Ado != null)
{
this.Ado.Close();
}
}
public virtual void Dispose()
{
if (this.Ado != null)
{
this.Ado.Dispose();
}
}
internal SqlSugarClient CopyContext(ConnectionConfig config)
{
var newClient = new SqlSugarClient(config);
newClient.MappingColumns = this.Context.MappingColumns;
newClient.MappingTables = this.Context.MappingTables;
newClient.IgnoreColumns = this.Context.IgnoreColumns;
return newClient;
}
#endregion
}

View File

@@ -24,7 +24,7 @@ namespace SqlSugar
var parsStr = string.Empty; ;
if (pars != null)
{
parsStr = context.RewritableMethods.SerializeObject(pars);
parsStr = context.Utilities.SerializeObject(pars);
}
var reval = GetLineMessage("message", message) + GetLineMessage("function", parsStr);
return reval;