mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 10:08:19 +08:00
Add Queryable.Distinct()
This commit is contained in:
@@ -395,6 +395,8 @@ namespace OrmTest.Demo
|
||||
bool? b = false;
|
||||
var test9 = db.Queryable<DataTestInfo2>().Where(it => it.Bool1 == b).ToList();
|
||||
var test10 = db.Queryable<Student>(db.Queryable<Student>().Select(it => new Student() { Name = it.Name.Substring(0, 1) })).GroupBy(it => it.Name).ToList(); ;
|
||||
var test11 = db.Queryable<Student>().Distinct().ToList();
|
||||
var test12 = db.Queryable<Student>().Distinct().Select(it=>new Student{ Name=it.Name }).ToList();
|
||||
}
|
||||
public static void Page()
|
||||
{
|
||||
|
@@ -573,6 +573,11 @@ namespace SqlSugar
|
||||
return mergeQueryable.AS(tableName).Select<T>("*");
|
||||
}
|
||||
|
||||
public ISugarQueryable<T> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
public virtual int Count()
|
||||
{
|
||||
InitMapping();
|
||||
@@ -1588,6 +1593,7 @@ namespace SqlSugar
|
||||
asyncQueryableBuilder.TableShortName = this.QueryBuilder.TableShortName;
|
||||
asyncQueryableBuilder.TableWithString = this.QueryBuilder.TableWithString;
|
||||
asyncQueryableBuilder.GroupByValue = this.QueryBuilder.GroupByValue;
|
||||
asyncQueryableBuilder.IsDistinct = this.QueryBuilder.IsDistinct;
|
||||
asyncQueryableBuilder.OrderByValue = this.QueryBuilder.OrderByValue;
|
||||
asyncQueryableBuilder.IsDisabledGobalFilter = this.QueryBuilder.IsDisabledGobalFilter;
|
||||
asyncQueryableBuilder.PartitionByValue = this.QueryBuilder.PartitionByValue;
|
||||
@@ -1596,6 +1602,7 @@ namespace SqlSugar
|
||||
asyncQueryableBuilder.HavingInfos = this.QueryBuilder.HavingInfos;
|
||||
asyncQueryableBuilder.LambdaExpressions.ParameterIndex = this.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -1897,6 +1904,11 @@ namespace SqlSugar
|
||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||
return result;
|
||||
}
|
||||
public new ISugarQueryable<T,T2> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -2261,6 +2273,11 @@ namespace SqlSugar
|
||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||
return result;
|
||||
}
|
||||
public new ISugarQueryable<T, T2,T3> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -2683,6 +2700,11 @@ namespace SqlSugar
|
||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||
return result;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3,T4> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -3032,6 +3054,11 @@ namespace SqlSugar
|
||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||
return result;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4,T5> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -3412,6 +3439,11 @@ namespace SqlSugar
|
||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||
return result;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5,T6> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -3823,6 +3855,11 @@ namespace SqlSugar
|
||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||
return result;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -4267,6 +4304,11 @@ namespace SqlSugar
|
||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||
return result;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> Distinct()
|
||||
{
|
||||
QueryBuilder.IsDistinct = true;
|
||||
return this;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
|
@@ -49,6 +49,7 @@ namespace SqlSugar
|
||||
public string GroupByValue { get; set; }
|
||||
public string PartitionByValue { get; set; }
|
||||
public int WhereIndex { get; set; }
|
||||
public bool IsDistinct { get; set; }
|
||||
public int JoinIndex { get; set; }
|
||||
public bool IsDisabledGobalFilter { get; set; }
|
||||
public virtual List<SugarParameter> Parameters { get; set; }
|
||||
@@ -363,6 +364,7 @@ namespace SqlSugar
|
||||
this._TableNameString = null;
|
||||
this.WhereInfos = null;
|
||||
this.JoinQueryInfos = null;
|
||||
this.IsDistinct = false;
|
||||
}
|
||||
public virtual bool IsComplexModel(string sql)
|
||||
{
|
||||
@@ -388,6 +390,10 @@ namespace SqlSugar
|
||||
{
|
||||
this.SelectCacheKey = this.SelectCacheKey + string.Join("-", this._JoinQueryInfos.Select(it => it.TableName));
|
||||
}
|
||||
if (IsDistinct)
|
||||
{
|
||||
result = " DISTINCT " + result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@@ -74,6 +74,7 @@ namespace SqlSugar
|
||||
|
||||
ISugarQueryable<T> Skip(int index);
|
||||
ISugarQueryable<T> Take(int num);
|
||||
ISugarQueryable<T> Distinct();
|
||||
|
||||
T Single();
|
||||
Task<T> SingleAsync();
|
||||
@@ -221,6 +222,7 @@ namespace SqlSugar
|
||||
new ISugarQueryable<T, T2> With(string withString);
|
||||
new ISugarQueryable<T, T2> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2> WithCacheIF(bool isCache, int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T,T2> Distinct();
|
||||
bool Any(Expression<Func<T,T2, bool>> expression);
|
||||
#endregion
|
||||
}
|
||||
@@ -311,6 +313,7 @@ namespace SqlSugar
|
||||
new ISugarQueryable<T, T2, T3> With(string withString);
|
||||
new ISugarQueryable<T, T2, T3> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3> WithCacheIF(bool isCache, int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2,T3> Distinct();
|
||||
bool Any(Expression<Func<T, T2,T3, bool>> expression);
|
||||
#endregion
|
||||
}
|
||||
@@ -412,6 +415,7 @@ namespace SqlSugar
|
||||
new ISugarQueryable<T, T2, T3, T4> With(string withString);
|
||||
new ISugarQueryable<T, T2, T3, T4> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4> WithCacheIF(bool isCache, int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3,T4> Distinct();
|
||||
bool Any(Expression<Func<T, T2, T3,T4, bool>> expression);
|
||||
#endregion
|
||||
}
|
||||
@@ -503,6 +507,7 @@ namespace SqlSugar
|
||||
new ISugarQueryable<T, T2, T3, T4, T5> With(string withString);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5> WithCacheIF(bool isCache, int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4,T5> Distinct();
|
||||
bool Any(Expression<Func<T, T2, T3, T4,T5, bool>> expression);
|
||||
#endregion
|
||||
}
|
||||
@@ -600,6 +605,7 @@ namespace SqlSugar
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6> With(string withString);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6> WithCacheIF(bool isCache, int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5,T6> Distinct();
|
||||
bool Any(Expression<Func<T, T2, T3, T4, T5,T6, bool>> expression);
|
||||
#endregion
|
||||
}
|
||||
@@ -703,6 +709,7 @@ namespace SqlSugar
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> With(string withString);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> WithCacheIF(bool isCache, int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> Distinct();
|
||||
bool Any(Expression<Func<T, T2, T3, T4, T5, T6,T7, bool>> expression);
|
||||
#endregion
|
||||
}
|
||||
@@ -812,6 +819,7 @@ namespace SqlSugar
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> With(string withString);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> WithCache(int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> WithCacheIF(bool isCache, int cacheDurationInSeconds = int.MaxValue);
|
||||
new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> Distinct();
|
||||
bool Any(Expression<Func<T, T2, T3, T4, T5, T6, T7,T8, bool>> expression);
|
||||
#endregion
|
||||
}
|
||||
|
@@ -84,6 +84,10 @@ namespace SqlSugar
|
||||
{
|
||||
this.SelectCacheKey = this.SelectCacheKey + string.Join("-", this.JoinQueryInfos.Select(it => it.TableName));
|
||||
}
|
||||
if (IsDistinct)
|
||||
{
|
||||
result = " DISTINCT " + result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@@ -84,6 +84,10 @@ namespace SqlSugar
|
||||
{
|
||||
this.SelectCacheKey = this.SelectCacheKey + string.Join("-", this.JoinQueryInfos.Select(it => it.TableName));
|
||||
}
|
||||
if (IsDistinct)
|
||||
{
|
||||
reval = " DISTINCT " + reval;
|
||||
}
|
||||
return reval;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user