IDbSession

IDbSession

DbContext 上下文会话接口,包含基本的 ado.net 操作(支持存储过程及 output 参数)。

public interface IDbSession : IDisposable
{
    /* 获取关联的上下文 */
    IDbContext DbContext { get; }

    /* 获取关联的 DbConnection */
    IDbConnection CurrentConnection { get; }
    /// <summary>
    /// 如果未开启事务,则返回 null
    /// </summary>
    IDbTransaction CurrentTransaction { get; }

    /* 判断当前会话是否开启了事务 */
    bool IsInTransaction { get; }
    /* 获取或设置在终止执行命令的尝试并生成错误之前的等待时间(以秒为单位)。默认值为 30 秒 */
    int CommandTimeout { get; set; }

    /* 下面这些方法,你懂的... */
    int ExecuteNonQuery(string cmdText, params DbParam[] parameters);
    int ExecuteNonQuery(string cmdText, CommandType cmdType, params DbParam[] parameters);

    object ExecuteScalar(string cmdText, params DbParam[] parameters);
    object ExecuteScalar(string cmdText, CommandType cmdType, params DbParam[] parameters);

    IDataReader ExecuteReader(string cmdText, params DbParam[] parameters);
    IDataReader ExecuteReader(string cmdText, CommandType cmdType, params DbParam[] parameters);

    void BeginTransaction();
    void BeginTransaction(IsolationLevel il);
    void CommitTransaction();
    void RollbackTransaction();

    /* 给当前会话添加拦截器 */
    void AddInterceptor(IDbCommandInterceptor interceptor);
    void RemoveInterceptor(IDbCommandInterceptor interceptor);
}