提交 115469dd 编写于 作者: s0611163's avatar s0611163

v1.8.18 增加InnerJoin和RightJoin接口

上级 f5d5d880
......@@ -5,9 +5,9 @@
<ImplicitUsings>disable</ImplicitUsings>
<Nullable>disable</Nullable>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<AssemblyVersion>1.8.17</AssemblyVersion>
<FileVersion>1.8.17</FileVersion>
<Version>1.8.17</Version>
<AssemblyVersion>1.8.18</AssemblyVersion>
<FileVersion>1.8.18</FileVersion>
<Version>1.8.18</Version>
</PropertyGroup>
<ItemGroup>
......
......@@ -67,6 +67,16 @@ namespace Dapper.LiteSql
/// </summary>
ISqlQueryable<T> LeftJoin<U>(Expression<Func<T, U, object>> expression);
/// <summary>
/// 追加 inner join SQL
/// </summary>
ISqlQueryable<T> InnerJoin<U>(Expression<Func<T, U, object>> expression);
/// <summary>
/// 追加 right join SQL
/// </summary>
ISqlQueryable<T> RightJoin<U>(Expression<Func<T, U, object>> expression);
/// <summary>
/// Where 连表
/// </summary>
......
......@@ -83,6 +83,48 @@ namespace Dapper.LiteSql
/// <param name="subSql">子SQL</param>
ISqlQueryable<T> Append<T>(string sql, ISqlString subSql) where T : new();
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
ISqlString LeftJoin(string sql, params object[] args);
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
ISqlQueryable<T> LeftJoin<T>(string sql, params object[] args) where T : new();
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
ISqlString InnerJoin(string sql, params object[] args);
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
ISqlQueryable<T> InnerJoin<T>(string sql, params object[] args) where T : new();
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
ISqlString RightJoin(string sql, params object[] args);
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
ISqlQueryable<T> RightJoin<T>(string sql, params object[] args) where T : new();
/// <summary>
/// 追加参数化SQL
/// </summary>
......
......@@ -300,6 +300,72 @@ namespace Dapper.LiteSql
}
#endregion
#region LeftJoin
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
public ISqlString LeftJoin(string sql, params object[] args)
{
return Append("left join " + sql, args);
}
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
public ISqlQueryable<T> LeftJoin<T>(string sql, params object[] args) where T : new()
{
return Append<T>("left join " + sql, args);
}
#endregion
#region InnerJoin
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
public ISqlString InnerJoin(string sql, params object[] args)
{
return Append("inner join " + sql, args);
}
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
public ISqlQueryable<T> InnerJoin<T>(string sql, params object[] args) where T : new()
{
return Append<T>("inner join " + sql, args);
}
#endregion
#region RightJoin
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
public ISqlString RightJoin(string sql, params object[] args)
{
return Append("right join " + sql, args);
}
/// <summary>
/// 追加参数化SQL
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="args">参数(支持多个参数或者把多个参数放在一个匿名对象中)</param>
public ISqlQueryable<T> RightJoin<T>(string sql, params object[] args) where T : new()
{
return Append<T>("right join " + sql, args);
}
#endregion
#region Where
/// <summary>
/// 追加参数化SQL
......
......@@ -304,6 +304,46 @@ namespace Dapper.LiteSql
}
#endregion
#region InnerJoin
/// <summary>
/// 追加 inner join SQL
/// </summary>
public ISqlQueryable<T> InnerJoin<U>(Expression<Func<T, U, object>> expression)
{
ExpressionHelper<T> condition = new ExpressionHelper<T>(this, _provider, _dbParameterNames, SqlStringMethod.LeftJoin);
DbParameter[] dbParameters;
string sql = condition.VisitLambda(expression, out dbParameters);
string tableName = _dbSession.GetTableName(_provider, typeof(U));
string alias = sql.Split('=')[1].Split('.')[0].Trim();
_sql.AppendFormat(" inner join {0} {1} on {2} ", tableName, alias, sql);
return this;
}
#endregion
#region RightJoin
/// <summary>
/// 追加 right join SQL
/// </summary>
public ISqlQueryable<T> RightJoin<U>(Expression<Func<T, U, object>> expression)
{
ExpressionHelper<T> condition = new ExpressionHelper<T>(this, _provider, _dbParameterNames, SqlStringMethod.LeftJoin);
DbParameter[] dbParameters;
string sql = condition.VisitLambda(expression, out dbParameters);
string tableName = _dbSession.GetTableName(_provider, typeof(U));
string alias = sql.Split('=')[1].Split('.')[0].Trim();
_sql.AppendFormat(" right join {0} {1} on {2} ", tableName, alias, sql);
return this;
}
#endregion
#region WhereJoin
/// <summary>
/// Where 连表
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册