- 增加 ISelect.OrderByRandom() 随机排序适配;

This commit is contained in:
2881099
2020-12-24 01:11:28 +08:00
parent ad4fa26818
commit cd6fd2708e
19 changed files with 226 additions and 0 deletions

View File

@ -579,4 +579,44 @@ SELECT ");
}
#endregion
#region OrderBy Random
/// <summary>
/// 随机排序<para></para>
/// 支持MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/金仓/神通<para></para>
/// 不支持MsAcess
/// </summary>
/// <returns></returns>
public static TSelect OrderByRandom<TSelect, T1>(this ISelect0<TSelect, T1> that) where TSelect : class
{
var s0p = that as Select0Provider;
switch (s0p._orm.Ado.DataType)
{
case DataType.MySql:
case DataType.OdbcMySql:
return that.OrderBy("rand()");
case DataType.SqlServer:
case DataType.OdbcSqlServer:
return that.OrderBy("newid()");
case DataType.PostgreSQL:
case DataType.OdbcPostgreSQL:
case DataType.KingbaseES:
case DataType.OdbcKingbaseES:
case DataType.ShenTong:
return that.OrderBy("random()");
case DataType.Oracle:
case DataType.Dameng:
case DataType.OdbcOracle:
case DataType.OdbcDameng:
return that.OrderBy("dbms_random.value");
case DataType.Sqlite:
return that.OrderBy("random()");
//case DataType.MsAccess:
// return that.OrderBy("rnd()");
case DataType.Firebird:
return that.OrderBy("rand()");
}
throw new NotSupportedException($"{s0p._orm.Ado.DataType} 不支持 OrderByRandom 随机排序");
}
#endregion
}

View File

@ -4495,6 +4495,14 @@
<param name="level">递归层级</param>
<returns></returns>
</member>
<member name="M:FreeSqlGlobalExtensions.OrderByRandom``2(FreeSql.ISelect0{``0,``1})">
<summary>
随机排序<para></para>
支持MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/金仓/神通<para></para>
不支持MsAcess
</summary>
<returns></returns>
</member>
<member name="M:System.Linq.Expressions.LambadaExpressionExtensions.And``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
<summary>
使用 and 拼接两个 lambda 表达式