Browse Source

-

pull/12/MERGE
sunkaixuan 6 years ago
parent
commit
8c552f5541
  1. 82
      Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs

82
Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs

@ -53,7 +53,7 @@ namespace SqlSugar
public void AddQueue() public void AddQueue()
{ {
var sqlObj = this.ToSql(); var sqlObj = this.ToSql();
this.Context.Queues.Add(sqlObj.Key,sqlObj.Value); this.Context.Queues.Add(sqlObj.Key, sqlObj.Value);
} }
public ISugarQueryable<T> Clone() public ISugarQueryable<T> Clone()
{ {
@ -95,11 +95,11 @@ namespace SqlSugar
} }
public ISugarQueryable<T> Mapper<TObject>(Expression<Func<T, TObject>> mapperObject, Expression<Func<T, object>> mainField, Expression<Func<T, object>> childField) public ISugarQueryable<T> Mapper<TObject>(Expression<Func<T, TObject>> mapperObject, Expression<Func<T, object>> mainField, Expression<Func<T, object>> childField)
{ {
return _Mapper<TObject>(mapperObject,mainField,childField); return _Mapper<TObject>(mapperObject, mainField, childField);
} }
public ISugarQueryable<T> Mapper<TObject>(Expression<Func<T, List<TObject>>> mapperObject, Expression<Func<T, object>> mainField, Expression<Func<T, object>> childField) public ISugarQueryable<T> Mapper<TObject>(Expression<Func<T, List<TObject>>> mapperObject, Expression<Func<T, object>> mainField, Expression<Func<T, object>> childField)
{ {
return _Mapper<TObject>(mapperObject, mainField, childField); return _Mapper<TObject>(mapperObject, mainField, childField);
} }
public virtual ISugarQueryable<T> Mapper<TObject>(Expression<Func<T, List<TObject>>> mapperObject, Expression<Func<T, object>> mapperField) public virtual ISugarQueryable<T> Mapper<TObject>(Expression<Func<T, List<TObject>>> mapperObject, Expression<Func<T, object>> mapperField)
{ {
@ -158,7 +158,7 @@ namespace SqlSugar
/// <returns></returns> /// <returns></returns>
public ISugarQueryable<T> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new() public ISugarQueryable<T> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new()
{ {
return WhereClass(new List<ClassType>() { whereClass },ignoreDefaultValue); return WhereClass(new List<ClassType>() { whereClass }, ignoreDefaultValue);
} }
/// <summary> /// <summary>
/// if a property that is not empty is a condition /// if a property that is not empty is a condition
@ -180,9 +180,9 @@ namespace SqlSugar
var value = column.PropertyInfo.GetValue(item, null); var value = column.PropertyInfo.GetValue(item, null);
WhereType WhereType = WhereType.And; WhereType WhereType = WhereType.And;
var isNotNull = ignoreDefaultValue == false&&value != null ; var isNotNull = ignoreDefaultValue == false && value != null;
var isNotNullAndDefault = ignoreDefaultValue&& value!=null && value.ObjToString() != UtilMethods.DefaultForType(column.PropertyInfo.PropertyType).ObjToString(); var isNotNullAndDefault = ignoreDefaultValue && value != null && value.ObjToString() != UtilMethods.DefaultForType(column.PropertyInfo.PropertyType).ObjToString();
if (isNotNull||isNotNullAndDefault) if (isNotNull || isNotNullAndDefault)
{ {
if (cons.ConditionalList == null) if (cons.ConditionalList == null)
{ {
@ -283,7 +283,7 @@ namespace SqlSugar
Where(SqlBuilder.SqlFalse); Where(SqlBuilder.SqlFalse);
return this; return this;
} }
if (pkValues.Length == 1 && pkValues.First().GetType().FullName.IsCollectionsList()|| (pkValues.First() is IEnumerable&&pkValues.First().GetType()!=UtilConstants.StringType)) if (pkValues.Length == 1 && pkValues.First().GetType().FullName.IsCollectionsList() || (pkValues.First() is IEnumerable && pkValues.First().GetType() != UtilConstants.StringType))
{ {
var newValues = new List<object>(); var newValues = new List<object>();
foreach (var item in pkValues.First() as IEnumerable) foreach (var item in pkValues.First() as IEnumerable)
@ -664,7 +664,8 @@ namespace SqlSugar
{ {
return _Avg<TResult>(expression); return _Avg<TResult>(expression);
} }
public virtual T[] ToArray() { public virtual T[] ToArray()
{
var result = this.ToList(); var result = this.ToList();
if (result.HasValue()) if (result.HasValue())
@ -735,7 +736,7 @@ namespace SqlSugar
var result = ToDataTablePage(pageIndex, pageSize); var result = ToDataTablePage(pageIndex, pageSize);
return result; return result;
} }
public virtual DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber,ref int totalPage) public virtual DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber, ref int totalPage)
{ {
var result = ToDataTablePage(pageIndex, pageSize, ref totalNumber); var result = ToDataTablePage(pageIndex, pageSize, ref totalNumber);
totalPage = (totalNumber + pageSize - 1) / pageSize; totalPage = (totalNumber + pageSize - 1) / pageSize;
@ -834,7 +835,7 @@ namespace SqlSugar
#region Async methods #region Async methods
public Task<T> SingleAsync() public Task<T> SingleAsync()
{ {
return Task.FromResult(Single()); return Task.FromResult(Single());
} }
public Task<T> SingleAsync(Expression<Func<T, bool>> expression) public Task<T> SingleAsync(Expression<Func<T, bool>> expression)
@ -922,12 +923,12 @@ namespace SqlSugar
public Task<string> ToJsonPageAsync(int pageIndex, int pageSize) public Task<string> ToJsonPageAsync(int pageIndex, int pageSize)
{ {
return Task.FromResult(ToJsonPage(pageIndex,pageSize)); return Task.FromResult(ToJsonPage(pageIndex, pageSize));
} }
public Task<string> ToJsonPageAsync(int pageIndex, int pageSize,ref int totalNumber) public Task<string> ToJsonPageAsync(int pageIndex, int pageSize, ref int totalNumber)
{ {
return Task.FromResult(ToJsonPage(pageIndex, pageSize,ref totalNumber)); return Task.FromResult(ToJsonPage(pageIndex, pageSize, ref totalNumber));
} }
public Task<DataTable> ToDataTableAsync() public Task<DataTable> ToDataTableAsync()
@ -937,22 +938,22 @@ namespace SqlSugar
public Task<DataTable> ToDataTablePageAsync(int pageIndex, int pageSize) public Task<DataTable> ToDataTablePageAsync(int pageIndex, int pageSize)
{ {
return Task.FromResult(ToDataTablePage(pageIndex,pageSize)); return Task.FromResult(ToDataTablePage(pageIndex, pageSize));
} }
public Task<DataTable> ToDataTablePageAsync(int pageIndex, int pageSize,ref int totalNumber) public Task<DataTable> ToDataTablePageAsync(int pageIndex, int pageSize, ref int totalNumber)
{ {
return Task.FromResult(ToDataTablePage(pageIndex, pageSize,ref totalNumber)); return Task.FromResult(ToDataTablePage(pageIndex, pageSize, ref totalNumber));
} }
public Task<List<T>> ToPageListAsync(int pageIndex, int pageSize) public Task<List<T>> ToPageListAsync(int pageIndex, int pageSize)
{ {
return Task.FromResult(ToPageList(pageIndex,pageSize)); return Task.FromResult(ToPageList(pageIndex, pageSize));
} }
public Task<List<T>> ToPageListAsync(int pageIndex, int pageSize, ref int totalNumber) public Task<List<T>> ToPageListAsync(int pageIndex, int pageSize, ref int totalNumber)
{ {
return Task.FromResult(ToPageList(pageIndex, pageSize,ref totalNumber)); return Task.FromResult(ToPageList(pageIndex, pageSize, ref totalNumber));
} }
#endregion #endregion
@ -1078,7 +1079,7 @@ namespace SqlSugar
foreach (var item in list) foreach (var item in list)
{ {
var filterResult = item.FilterValue(this.Context); var filterResult = item.FilterValue(this.Context);
Where(filterResult.Sql+UtilConstants.Space, filterResult.Parameters); Where(filterResult.Sql + UtilConstants.Space, filterResult.Parameters);
} }
} }
} }
@ -1138,8 +1139,9 @@ namespace SqlSugar
foreach (var column in this.EntityInfo.Columns.Where(it => it.IsTranscoding)) foreach (var column in this.EntityInfo.Columns.Where(it => it.IsTranscoding))
{ {
var value = column.PropertyInfo.GetValue(item, null); var value = column.PropertyInfo.GetValue(item, null);
if (value != null) { if (value != null)
column.PropertyInfo.SetValue(item,UtilMethods.DecodeBase64(value.ToString()),null); {
column.PropertyInfo.SetValue(item, UtilMethods.DecodeBase64(value.ToString()), null);
} }
} }
} }
@ -1230,7 +1232,7 @@ namespace SqlSugar
{ {
Action<List<T>> mapper = (entitys) => Action<List<T>> mapper = (entitys) =>
{ {
if (entitys.IsNullOrEmpty()||!entitys.Any()) return; if (entitys.IsNullOrEmpty() || !entitys.Any()) return;
var entity = entitys.First(); var entity = entitys.First();
var whereCol = filedEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(filedName, StringComparison.CurrentCultureIgnoreCase)); var whereCol = filedEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(filedName, StringComparison.CurrentCultureIgnoreCase));
if (whereCol == null) if (whereCol == null)
@ -1239,15 +1241,15 @@ namespace SqlSugar
} }
if (whereCol == null) if (whereCol == null)
{ {
whereCol = filedEntity.Columns.FirstOrDefault(it => GetPrimaryKeys().Any(pk=>pk.Equals(it.DbColumnName,StringComparison.CurrentCultureIgnoreCase)) ); whereCol = filedEntity.Columns.FirstOrDefault(it => GetPrimaryKeys().Any(pk => pk.Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase)));
} }
if (whereCol == null) if (whereCol == null)
{ {
whereCol = filedEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals("id",StringComparison.CurrentCultureIgnoreCase)); whereCol = filedEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals("id", StringComparison.CurrentCultureIgnoreCase));
} }
if (whereCol == null) if (whereCol == null)
{ {
whereCol = filedEntity.Columns.FirstOrDefault(it => (it.PropertyName).Equals(it.EntityName+"id", StringComparison.CurrentCultureIgnoreCase)); whereCol = filedEntity.Columns.FirstOrDefault(it => (it.PropertyName).Equals(it.EntityName + "id", StringComparison.CurrentCultureIgnoreCase));
} }
if (whereCol == null) if (whereCol == null)
{ {
@ -1285,7 +1287,7 @@ namespace SqlSugar
{ {
Action<List<T>> mapper = (entitys) => Action<List<T>> mapper = (entitys) =>
{ {
if (entitys.IsNullOrEmpty()||!entitys.Any()) return; if (entitys.IsNullOrEmpty() || !entitys.Any()) return;
var entity = entitys.First(); var entity = entitys.First();
var tEntity = this.Context.EntityMaintenance.GetEntityInfo<T>(); var tEntity = this.Context.EntityMaintenance.GetEntityInfo<T>();
var whereCol = tEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(filedName, StringComparison.CurrentCultureIgnoreCase)); var whereCol = tEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(filedName, StringComparison.CurrentCultureIgnoreCase));
@ -1975,7 +1977,7 @@ namespace SqlSugar
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result; return result;
} }
public new ISugarQueryable<T,T2> Distinct() public new ISugarQueryable<T, T2> Distinct()
{ {
QueryBuilder.IsDistinct = true; QueryBuilder.IsDistinct = true;
return this; return this;
@ -2346,7 +2348,7 @@ namespace SqlSugar
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result; return result;
} }
public new ISugarQueryable<T, T2,T3> Distinct() public new ISugarQueryable<T, T2, T3> Distinct()
{ {
QueryBuilder.IsDistinct = true; QueryBuilder.IsDistinct = true;
return this; return this;
@ -2775,7 +2777,7 @@ namespace SqlSugar
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result; return result;
} }
public new ISugarQueryable<T, T2, T3,T4> Distinct() public new ISugarQueryable<T, T2, T3, T4> Distinct()
{ {
QueryBuilder.IsDistinct = true; QueryBuilder.IsDistinct = true;
return this; return this;
@ -2871,9 +2873,9 @@ namespace SqlSugar
/// </summary> /// </summary>
/// <param name="whereClass"></param> /// <param name="whereClass"></param>
/// <returns></returns> /// <returns></returns>
public new ISugarQueryable<T,T2, T3, T4, T5> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new() public new ISugarQueryable<T, T2, T3, T4, T5> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new()
{ {
base.WhereClass(whereClass, ignoreDefaultValue); base.WhereClass(whereClass, ignoreDefaultValue);
return this; return this;
} }
/// <summary> /// <summary>
@ -2881,7 +2883,7 @@ namespace SqlSugar
/// </summary> /// </summary>
/// <param name="whereClassTypes"></param> /// <param name="whereClassTypes"></param>
/// <returns></returns> /// <returns></returns>
public new ISugarQueryable<T,T2, T3, T4, T5> WhereClass<ClassType>(List<ClassType> whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() public new ISugarQueryable<T, T2, T3, T4, T5> WhereClass<ClassType>(List<ClassType> whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new()
{ {
base.WhereClass(whereClassTypes, ignoreDefaultValue); base.WhereClass(whereClassTypes, ignoreDefaultValue);
@ -3131,7 +3133,7 @@ namespace SqlSugar
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result; return result;
} }
public new ISugarQueryable<T, T2, T3, T4,T5> Distinct() public new ISugarQueryable<T, T2, T3, T4, T5> Distinct()
{ {
QueryBuilder.IsDistinct = true; QueryBuilder.IsDistinct = true;
return this; return this;
@ -3239,7 +3241,7 @@ namespace SqlSugar
/// </summary> /// </summary>
/// <param name="whereClass"></param> /// <param name="whereClass"></param>
/// <returns></returns> /// <returns></returns>
public new ISugarQueryable<T, T2, T3, T4, T5,T6> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new() public new ISugarQueryable<T, T2, T3, T4, T5, T6> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new()
{ {
base.WhereClass(whereClass, ignoreDefaultValue); base.WhereClass(whereClass, ignoreDefaultValue);
return this; return this;
@ -3518,7 +3520,7 @@ namespace SqlSugar
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result; return result;
} }
public new ISugarQueryable<T, T2, T3, T4, T5,T6> Distinct() public new ISugarQueryable<T, T2, T3, T4, T5, T6> Distinct()
{ {
QueryBuilder.IsDistinct = true; QueryBuilder.IsDistinct = true;
return this; return this;
@ -3637,7 +3639,7 @@ namespace SqlSugar
/// </summary> /// </summary>
/// <param name="whereClass"></param> /// <param name="whereClass"></param>
/// <returns></returns> /// <returns></returns>
public new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new() public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> WhereClass<ClassType>(ClassType whereClass, bool ignoreDefaultValue = false) where ClassType : class, new()
{ {
base.WhereClass(whereClass, ignoreDefaultValue); base.WhereClass(whereClass, ignoreDefaultValue);
return this; return this;
@ -3647,7 +3649,7 @@ namespace SqlSugar
/// </summary> /// </summary>
/// <param name="whereClassTypes"></param> /// <param name="whereClassTypes"></param>
/// <returns></returns> /// <returns></returns>
public new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> WhereClass<ClassType>(List<ClassType> whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> WhereClass<ClassType>(List<ClassType> whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new()
{ {
base.WhereClass(whereClassTypes, ignoreDefaultValue); base.WhereClass(whereClassTypes, ignoreDefaultValue);
@ -3936,7 +3938,7 @@ namespace SqlSugar
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result; return result;
} }
public new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> Distinct() public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> Distinct()
{ {
QueryBuilder.IsDistinct = true; QueryBuilder.IsDistinct = true;
return this; return this;
@ -4387,7 +4389,7 @@ namespace SqlSugar
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
return result; return result;
} }
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> Distinct() public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> Distinct()
{ {
QueryBuilder.IsDistinct = true; QueryBuilder.IsDistinct = true;
return this; return this;

Loading…
Cancel
Save