mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
- 增加 ISelect.ForUpdate 排他更新锁(根据数据库类型的规则,见代码注释);
- 完善 SqlServer WithLock 功能,组合多种使用 | 枚举相联;
This commit is contained in:
@ -250,6 +250,20 @@ namespace FreeSql
|
||||
/// <returns></returns>
|
||||
TSelect DisableGlobalFilter(params string[] name);
|
||||
|
||||
/// <summary>
|
||||
/// 排他更新锁<para></para>
|
||||
/// 注意:务必在开启事务后使用该功能<para></para>
|
||||
/// MySql: for update<para></para>
|
||||
/// SqlServer: With(UpdLock, RowLock, NoWait)<para></para>
|
||||
/// PostgreSQL: for update nowait<para></para>
|
||||
/// Oracle: for update nowait<para></para>
|
||||
/// Sqlite: 无效果<para></para>
|
||||
/// 达梦: for update nowait
|
||||
/// </summary>
|
||||
/// <param name="nowait">noawait</param>
|
||||
/// <returns></returns>
|
||||
TSelect ForUpdate(bool nowait = false);
|
||||
|
||||
/// <summary>
|
||||
/// 按原生sql语法分组,GroupBy("concat(name, ?cc)", new { cc = 1 })
|
||||
/// </summary>
|
||||
|
@ -34,14 +34,14 @@ namespace FreeSql
|
||||
|
||||
#region 事务
|
||||
/// <summary>
|
||||
/// 开启事务(不支持异步),60秒未执行完将自动提交
|
||||
/// 开启事务(不支持异步),60秒未执行完成(可能)被其他线程事务自动提交
|
||||
/// </summary>
|
||||
/// <param name="handler">事务体 () => {}</param>
|
||||
void Transaction(Action handler);
|
||||
/// <summary>
|
||||
/// 开启事务(不支持异步)
|
||||
/// </summary>
|
||||
/// <param name="timeout">超时,未执行完将自动提交</param>
|
||||
/// <param name="timeout">超时,未执行完成(可能)被其他线程事务自动提交</param>
|
||||
/// <param name="handler">事务体 () => {}</param>
|
||||
void Transaction(TimeSpan timeout, Action handler);
|
||||
/// <summary>
|
||||
@ -49,7 +49,7 @@ namespace FreeSql
|
||||
/// </summary>
|
||||
/// <param name="isolationLevel"></param>
|
||||
/// <param name="handler">事务体 () => {}</param>
|
||||
/// <param name="timeout">超时,未执行完将自动提交</param>
|
||||
/// <param name="timeout">超时,未执行完成(可能)被其他线程事务自动提交</param>
|
||||
void Transaction(IsolationLevel isolationLevel, TimeSpan timeout, Action handler);
|
||||
/// <summary>
|
||||
/// 当前线程的事务
|
||||
|
@ -87,14 +87,14 @@ public interface IFreeSql : IDisposable
|
||||
IDelete<T1> Delete<T1>(object dywhere) where T1 : class;
|
||||
|
||||
/// <summary>
|
||||
/// 开启事务(不支持异步),60秒未执行完将自动提交
|
||||
/// 开启事务(不支持异步),60秒未执行完成(可能)被其他线程事务自动提交
|
||||
/// </summary>
|
||||
/// <param name="handler">事务体 () => {}</param>
|
||||
void Transaction(Action handler);
|
||||
/// <summary>
|
||||
/// 开启事务(不支持异步)
|
||||
/// </summary>
|
||||
/// <param name="timeout">超时,未执行完将自动提交</param>
|
||||
/// <param name="timeout">超时,未执行完成(可能)被其他线程事务自动提交</param>
|
||||
/// <param name="handler">事务体 () => {}</param>
|
||||
void Transaction(TimeSpan timeout, Action handler);
|
||||
/// <summary>
|
||||
@ -102,7 +102,7 @@ public interface IFreeSql : IDisposable
|
||||
/// </summary>
|
||||
/// <param name="isolationLevel"></param>
|
||||
/// <param name="handler">事务体 () => {}</param>
|
||||
/// <param name="timeout">超时,未执行完将自动提交</param>
|
||||
/// <param name="timeout">超时,未执行完成(可能)被其他线程事务自动提交</param>
|
||||
void Transaction(IsolationLevel isolationLevel, TimeSpan timeout, Action handler);
|
||||
|
||||
/// <summary>
|
||||
|
Reference in New Issue
Block a user