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; var entityName = typeof(T).Name;
return _As(tableName, entityName); return _As(tableName, entityName);
} }
public ISugarQueryable<T> IF(bool condition, Action<ISugarQueryable<T>> action)
{
if(condition)
action(this);
return this;
}
public ISugarQueryable<T> AsWithAttr() public ISugarQueryable<T> AsWithAttr()
{ {
var asName=GetTableName(this.EntityInfo, this.EntityInfo.DbTableName); var asName=GetTableName(this.EntityInfo, this.EntityInfo.DbTableName);

View File

@ -16,6 +16,10 @@ namespace SqlSugar
#region T2 #region T2
public partial class QueryableProvider<T, T2> : QueryableProvider<T>, ISugarQueryable<T, 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) public new ISugarQueryable<T,T2> Hints(string hints)
{ {
this.QueryBuilder.Hints = hints; this.QueryBuilder.Hints = hints;
@ -695,6 +699,10 @@ namespace SqlSugar
#region T3 #region T3
public partial class QueryableProvider<T, T2, T3> : QueryableProvider<T>, ISugarQueryable<T, T2, 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) public new ISugarQueryable<T, T2,T3> Hints(string hints)
{ {
this.QueryBuilder.Hints = hints; this.QueryBuilder.Hints = hints;
@ -1480,6 +1488,10 @@ namespace SqlSugar
#region T4 #region T4
public partial class QueryableProvider<T, T2, T3, T4> : QueryableProvider<T>, ISugarQueryable<T, T2, T3, 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) public new ISugarQueryable<T, T2, T3,T4> Hints(string hints)
{ {
this.QueryBuilder.Hints = hints; this.QueryBuilder.Hints = hints;
@ -2286,6 +2298,10 @@ namespace SqlSugar
#region T5 #region T5
public partial class QueryableProvider<T, T2, T3, T4, T5> : QueryableProvider<T>, ISugarQueryable<T, T2, T3, T4, 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) public new ISugarQueryable<T, T2, T3, T4,T5> Hints(string hints)
{ {
this.QueryBuilder.Hints = hints; this.QueryBuilder.Hints = hints;

View File

@ -15,6 +15,10 @@ namespace SqlSugar
#region T6 #region T6
public partial class QueryableProvider<T, T2, T3, T4, T5, T6> : QueryableProvider<T>, ISugarQueryable<T, T2, T3, T4, T5, 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) public new ISugarQueryable<T, T2, T3, T4, T5,T6> Hints(string hints)
{ {
this.QueryBuilder.Hints = hints; this.QueryBuilder.Hints = hints;

View File

@ -20,6 +20,7 @@ namespace SqlSugar
ISugarQueryable<T> Hints(string hints); ISugarQueryable<T> Hints(string hints);
ISugarQueryable<T> AS<T2>(string tableName); ISugarQueryable<T> AS<T2>(string tableName);
ISugarQueryable<T> AS(string tableName); ISugarQueryable<T> AS(string tableName);
ISugarQueryable<T> IF(bool condition, Action<ISugarQueryable<T>> action);
ISugarQueryable<T> AsWithAttr(); ISugarQueryable<T> AsWithAttr();
ISugarQueryable<T> AsType(Type tableNameType); ISugarQueryable<T> AsType(Type tableNameType);
ISugarQueryable<Type> Cast<Type>(); ISugarQueryable<Type> Cast<Type>();
@ -332,6 +333,7 @@ namespace SqlSugar
} }
public partial interface ISugarQueryable<T, T2> : ISugarQueryable<T> 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> Hints(string hints);
new ISugarQueryable<T,T2> SampleBy(int timeNumber, SampleByUnit timeType); new ISugarQueryable<T,T2> SampleBy(int timeNumber, SampleByUnit timeType);
new ISugarQueryable<T,T2> SampleBy(int timeNumber, string 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> 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> Hints(string hints);
new ISugarQueryable<T, T2,T3> SampleBy(int timeNumber, SampleByUnit timeType); new ISugarQueryable<T, T2,T3> SampleBy(int timeNumber, SampleByUnit timeType);
new ISugarQueryable<T, T2,T3> SampleBy(int timeNumber, string 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> 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> Hints(string hints);
new ISugarQueryable<T, T2, T3,T4> SampleBy(int timeNumber, SampleByUnit timeType); new ISugarQueryable<T, T2, T3,T4> SampleBy(int timeNumber, SampleByUnit timeType);
new ISugarQueryable<T, T2, T3,T4> SampleBy(int timeNumber, string 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> 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> 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, SampleByUnit timeType);
new ISugarQueryable<T, T2, T3, T4,T5> SampleBy(int timeNumber, string 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> 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); 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<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); ISugarQueryable<T, T2, T3, T4, T5, T6,T7> LeftJoinIF<T7>(bool isLeftJoin, Expression<Func<T, T2, T3, T4, T5, T6,T7, bool>> joinExpression);