Add LeftJoinIF(BOOL,EXP, TABLENAME)

This commit is contained in:
sunkaixuan
2025-04-23 18:24:45 +08:00
parent 6f269d515e
commit 7dcc338899
2 changed files with 138 additions and 0 deletions

View File

@@ -209,6 +209,49 @@ namespace SqlSugar
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
return result;
}
public ISugarQueryable<T, T2, T3> LeftJoinIF<T3>(bool isJoin,Expression<Func<T, T2, T3, bool>> joinExpression, string tableName)
{
var result = LeftJoin<T3>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3> FullJoinIF<T3>(bool isJoin,Expression<Func<T, T2, T3, bool>> joinExpression, string tableName)
{
var result = FullJoin<T3>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3> InnerJoinIF<T3>(bool isJoin,Expression<Func<T, T2, T3, bool>> joinExpression, string tableName)
{
var result = InnerJoin<T3>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3> RightJoinIF<T3>(bool isJoin,Expression<Func<T, T2, T3, bool>> joinExpression, string tableName)
{
var result = RightJoin<T3>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3> InnerJoin<T3>(Expression<Func<T, T2, T3, bool>> joinExpression)
{
this.Context.InitMappingInfo<T3>();
@@ -904,6 +947,47 @@ namespace SqlSugar
}
public ISugarQueryable<T, T2, T3,T4> LeftJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3,T4, bool>> joinExpression, string tableName)
{
var result = LeftJoin<T4>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3,T4> FullJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3, T4, bool>> joinExpression, string tableName)
{
var result = FullJoin<T4>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3, T4> InnerJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3, T4, bool>> joinExpression, string tableName)
{
var result = InnerJoin<T4>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3, T4> RightJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3, T4, bool>> joinExpression, string tableName)
{
var result = RightJoin<T4>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
#region Group
public new ISugarQueryable<T, T2,T3> PartitionBy(Expression<Func<T, object>> expression)
@@ -1674,6 +1758,46 @@ namespace SqlSugar
return result;
}
public ISugarQueryable<T, T2, T3, T4, T5> LeftJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName)
{
var result = LeftJoin<T5>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3, T4, T5> FullJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName)
{
var result = FullJoin<T5>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3, T4, T5> InnerJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName)
{
var result = InnerJoin<T5>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
public ISugarQueryable<T, T2, T3, T4,T5> RightJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName)
{
var result = RightJoin<T5>(joinExpression);
result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName;
if (isJoin == false)
{
result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last());
}
return result;
}
#region Where
public new ISugarQueryable<T, T2, T3,T4> Where(string expShortName, FormattableString expressionString)

View File

@@ -351,6 +351,11 @@ namespace SqlSugar
ISugarQueryable<T, T2, T3> InnerJoin<T3>(Expression<Func<T, T2, T3, bool>> joinExpression);
ISugarQueryable<T, T2, T3> RightJoin<T3>(Expression<Func<T, T2, T3, bool>> joinExpression);
ISugarQueryable<T, T2, T3> LeftJoinIF<T3>(bool isJoin, Expression<Func<T, T2, T3, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3> FullJoinIF<T3>(bool isJoin, Expression<Func<T, T2, T3, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3> InnerJoinIF<T3>(bool isJoin, Expression<Func<T, T2, T3, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3> RightJoinIF<T3>(bool isJoin, Expression<Func<T, T2, T3, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3> LeftJoin<T3>(Expression<Func<T, T2, T3, bool>> joinExpression,string tableName);
ISugarQueryable<T, T2, T3> FullJoin<T3>(Expression<Func<T, T2, T3, bool>> joinExpression,string tableName);
ISugarQueryable<T, T2, T3> InnerJoin<T3>(Expression<Func<T, T2, T3, bool>> joinExpression,string tableName);
@@ -485,6 +490,11 @@ namespace SqlSugar
ISugarQueryable<T, T2, T3, T4> FullJoin<T4>(Expression<Func<T, T2, T3, T4, bool>> joinExpression,string tableName);
ISugarQueryable<T, T2, T3, T4> InnerJoin<T4>(Expression<Func<T, T2, T3, T4, bool>> joinExpression,string tableName);
ISugarQueryable<T, T2, T3, T4> RightJoin<T4>(Expression<Func<T, T2, T3, T4, bool>> joinExpression,string tableName);
ISugarQueryable<T, T2, T3,T4> LeftJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3,T4, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3,T4> FullJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3,T4, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3,T4> InnerJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3,T4, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3,T4> RightJoinIF<T4>(bool isJoin, Expression<Func<T, T2, T3,T4, bool>> joinExpression, string tableName);
#region Where
new ISugarQueryable<T, T2,T3> Where(string expShortName, FormattableString expressionString);
new ISugarQueryable<T, T2, T3> Where(Expression<Func<T, bool>> expression);
@@ -630,6 +640,10 @@ namespace SqlSugar
ISugarQueryable<T, T2, T3, T4, T5> FullJoin<T5>(Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3, T4, T5> InnerJoin<T5>(Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3, T4, T5> RightJoin<T5>(Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3, T4,T5> LeftJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3, T4, T5> FullJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3, T4, T5> InnerJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName);
ISugarQueryable<T, T2, T3, T4, T5> RightJoinIF<T5>(bool isJoin, Expression<Func<T, T2, T3, T4, T5, bool>> joinExpression, string tableName);
#region Where
new ISugarQueryable<T, T2, T3,T4> Where(string expShortName, FormattableString expressionString);