Add Queryable.IF

This commit is contained in:
sunkaixuan 2025-04-17 14:22:31 +08:00
parent 4bfbc2572e
commit b6e6928f7c
4 changed files with 33 additions and 0 deletions

View File

@ -357,6 +357,13 @@ namespace SqlSugar
var entityName = typeof(T).Name;
return _As(tableName, entityName);
}
public ISugarQueryable<T> IF(bool condition, Action<ISugarQueryable<T>> action)
{
if(condition)
action(this);
return this;
}
public ISugarQueryable<T> AsWithAttr()
{
var asName=GetTableName(this.EntityInfo, this.EntityInfo.DbTableName);

View File

@ -16,6 +16,10 @@ namespace SqlSugar
#region T2
public partial class QueryableProvider<T, T2> : QueryableProvider<T>, ISugarQueryable<T, T2>
{
public new ISugarQueryable<T, T2> IF(bool condition, Action<ISugarQueryable<T>> action)
{
throw new Exception("Only Queryable<T>().IF is supported, and Queryable<T,T2,>().IF is not supported");
}
public new ISugarQueryable<T,T2> Hints(string hints)
{
this.QueryBuilder.Hints = hints;
@ -695,6 +699,10 @@ namespace SqlSugar
#region T3
public partial class QueryableProvider<T, T2, T3> : QueryableProvider<T>, ISugarQueryable<T, T2, T3>
{
public new ISugarQueryable<T, T2,T3> IF(bool condition, Action<ISugarQueryable<T>> action)
{
throw new Exception("Only Queryable<T>().IF is supported, and Queryable<T,T2,>().IF is not supported");
}
public new ISugarQueryable<T, T2,T3> Hints(string hints)
{
this.QueryBuilder.Hints = hints;
@ -1480,6 +1488,10 @@ namespace SqlSugar
#region T4
public partial class QueryableProvider<T, T2, T3, T4> : QueryableProvider<T>, ISugarQueryable<T, T2, T3, T4>
{
public new ISugarQueryable<T, T2,T3,T4> IF(bool condition, Action<ISugarQueryable<T>> action)
{
throw new Exception("Only Queryable<T>().IF is supported, and Queryable<T,T2,>().IF is not supported");
}
public new ISugarQueryable<T, T2, T3,T4> Hints(string hints)
{
this.QueryBuilder.Hints = hints;
@ -2286,6 +2298,10 @@ namespace SqlSugar
#region T5
public partial class QueryableProvider<T, T2, T3, T4, T5> : QueryableProvider<T>, ISugarQueryable<T, T2, T3, T4, T5>
{
public new ISugarQueryable<T, T2,T3,T4,T5> IF(bool condition, Action<ISugarQueryable<T>> action)
{
throw new Exception("Only Queryable<T>().IF is supported, and Queryable<T,T2,>().IF is not supported");ss
}
public new ISugarQueryable<T, T2, T3, T4,T5> Hints(string hints)
{
this.QueryBuilder.Hints = hints;

View File

@ -15,6 +15,10 @@ namespace SqlSugar
#region T6
public partial class QueryableProvider<T, T2, T3, T4, T5, T6> : QueryableProvider<T>, ISugarQueryable<T, T2, T3, T4, T5, T6>
{
public new ISugarQueryable<T, T2, T3, T4, T5, T6> IF(bool condition, Action<ISugarQueryable<T>> action)
{
throw new Exception("Only Queryable<T>().IF is supported, and Queryable<T,T2,>().IF is not supported");
}
public new ISugarQueryable<T, T2, T3, T4, T5,T6> Hints(string hints)
{
this.QueryBuilder.Hints = hints;

View File

@ -20,6 +20,7 @@ namespace SqlSugar
ISugarQueryable<T> Hints(string hints);
ISugarQueryable<T> AS<T2>(string tableName);
ISugarQueryable<T> AS(string tableName);
ISugarQueryable<T> IF(bool condition, Action<ISugarQueryable<T>> action);
ISugarQueryable<T> AsWithAttr();
ISugarQueryable<T> AsType(Type tableNameType);
ISugarQueryable<Type> Cast<Type>();
@ -332,6 +333,7 @@ namespace SqlSugar
}
public partial interface ISugarQueryable<T, T2> : ISugarQueryable<T>
{
new ISugarQueryable<T,T2> IF(bool condition, Action<ISugarQueryable<T>> action);
new ISugarQueryable<T,T2> Hints(string hints);
new ISugarQueryable<T,T2> SampleBy(int timeNumber, SampleByUnit timeType);
new ISugarQueryable<T,T2> SampleBy(int timeNumber, string timeType);
@ -462,6 +464,7 @@ namespace SqlSugar
}
public partial interface ISugarQueryable<T, T2, T3> : ISugarQueryable<T>
{
new ISugarQueryable<T, T2,T3> IF(bool condition, Action<ISugarQueryable<T>> action);
new ISugarQueryable<T, T2,T3> Hints(string hints);
new ISugarQueryable<T, T2,T3> SampleBy(int timeNumber, SampleByUnit timeType);
new ISugarQueryable<T, T2,T3> SampleBy(int timeNumber, string timeType);
@ -607,6 +610,7 @@ namespace SqlSugar
}
public partial interface ISugarQueryable<T, T2, T3, T4> : ISugarQueryable<T>
{
new ISugarQueryable<T, T2,T3,T4> IF(bool condition, Action<ISugarQueryable<T>> action);
new ISugarQueryable<T, T2, T3,T4> Hints(string hints);
new ISugarQueryable<T, T2, T3,T4> SampleBy(int timeNumber, SampleByUnit timeType);
new ISugarQueryable<T, T2, T3,T4> SampleBy(int timeNumber, string timeType);
@ -758,6 +762,7 @@ namespace SqlSugar
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5> : ISugarQueryable<T>
{
new ISugarQueryable<T, T2,T3,T4,T5> IF(bool condition, Action<ISugarQueryable<T>> action);
new ISugarQueryable<T, T2, T3, T4,T5> Hints(string hints);
new ISugarQueryable<T, T2, T3, T4,T5> SampleBy(int timeNumber, SampleByUnit timeType);
new ISugarQueryable<T, T2, T3, T4,T5> SampleBy(int timeNumber, string timeType);
@ -904,6 +909,7 @@ namespace SqlSugar
}
public partial interface ISugarQueryable<T, T2, T3, T4, T5, T6> : ISugarQueryable<T>
{
new ISugarQueryable<T, T2, T3, T4, T5, T6> IF(bool condition, Action<ISugarQueryable<T>> action);
new ISugarQueryable<T, T2, T3, T4, T5,T6> Hints(string hints);
ISugarQueryable<TResult> SelectMergeTable<TResult>(Expression<Func<T, T2, T3, T4, T5,T6, TResult>> expression);
ISugarQueryable<T, T2, T3, T4, T5, T6,T7> LeftJoinIF<T7>(bool isLeftJoin, Expression<Func<T, T2, T3, T4, T5, T6,T7, bool>> joinExpression);