/// <summary> /// 执行查询命令,并执行给定的读取器的回调函数。 /// </summary> /// <typeparam name="TValue">返回值的数据类型。</typeparam> /// <param name="callback">给定的读取器委托。</param> /// <returns>回调结果的值。</returns> public virtual TValue ToReader <TValue>(ExecuteReaderHandler <TValue> callback) => this.Execute(ExecuteType.Reader, dbCommand => { using (var reader = dbCommand.ExecuteReader()) { return(callback(reader)); } });
/// <summary> /// 执行查询命令,并执行给定的读取器的回调函数。 /// </summary> /// <param name="callback">给定的读取器委托。</param> public virtual void ToReader(ExecuteReaderHandler callback) => this.Execute <object>(ExecuteType.Reader, dbCommand => { using (var reader = dbCommand.ExecuteReader()) { callback(reader); } return(null); });
/// <summary> /// 执行查询命令,并构建一个读取器结果。 /// </summary> /// <typeparam name="TValue">返回值的类型。</typeparam> /// <param name="callback">给定的读取器委托。</param> /// <returns>返回一个执行结果。</returns> public virtual DbResult <TValue> ToReader <TValue>(ExecuteReaderHandler <TValue> callback) { return(this.Execute <DbResult <TValue>, TValue>(ExecuteType.Reader, dbCommand => { using (var reader = dbCommand.ExecuteReader()) { return callback(reader); } })); }
/// <summary> /// 执行查询命令,并构建一个读取器结果。 /// </summary> /// <param name="callback">给定的读取器委托。</param> /// <returns>返回一个执行结果。</returns> public virtual DbResult ToReader(ExecuteReaderHandler callback) { return(this.Execute <DbResult, VoidValue>(ExecuteType.Reader, dbCommand => { using (var reader = dbCommand.ExecuteReader()) { callback(reader); } return default(VoidValue); })); }
/// <summary> /// 异步异步执行查询命令,并执行给定的读取器的回调函数。 /// </summary> /// <param name="cancellationToken">针对取消请求监视的标记。</param> /// <param name="callback">给定的读取器委托。</param> public virtual Task ToReaderAsync(CancellationToken cancellationToken, ExecuteReaderHandler callback) { return(this.ExecuteAsync(ExecuteType.Reader, cancellationToken, (dbCommand, ct) => { return dbCommand.ExecuteReaderAsync(ct).ContinueWith <object>(t => { using (var reader = t.Result) { callback(reader); } return null; }); })); }
public void ProcessTaskCenter_WhenNewFieldsAreFound_FetchesNewFields() { // Arrange const string newFieldName = "NewField"; const bool newFieldEditable = true; const string newFieldTitle = "Title"; const string newFieldTypeName = "CHOICE"; var executeReaderHandler = new ExecuteReaderHandler((sqlCommand, dataReader) => { if (sqlCommand.CommandText.Equals(QuerySelectCustomFields01)) { ShimQuerySelectCustomFields01Reader(dataReader, newFieldName, newFieldEditable); } else if (sqlCommand.CommandText.Equals(QuerySelectCustomFields02)) { ShimQuerySelectCustomFields02Reader(dataReader, newFieldTitle, newFieldTypeName); } else if (sqlCommand.CommandText.Equals(QuerySelectCustomFields03)) { ShimQuerySelectCustomFields03Reader(dataReader); } }); _adoShims.ExecuteReaderCalled += executeReaderHandler; // Act _testEntity.processTaskCenter(); // Assert _adoShims.ShouldSatisfyAllConditions( () => _adoShims.IsCommandCreated(QuerySelectCustomFields02).ShouldBeTrue(), () => _adoShims.IsCommandExecuted(QuerySelectCustomFields02).ShouldBeTrue(), () => _adoShims.IsCommandDisposed(QuerySelectCustomFields02).ShouldBeTrue(), () => _adoShims.IsCommandCreated(QuerySelectCustomFields03).ShouldBeTrue(), () => _adoShims.IsCommandExecuted(QuerySelectCustomFields03).ShouldBeTrue(), () => _adoShims.IsCommandDisposed(QuerySelectCustomFields03).ShouldBeTrue()); }
/// <summary> /// 异步执行查询命令,并执行给定的读取器的回调函数。 /// </summary> /// <typeparam name="TValue">返回值的数据类型。</typeparam> /// <param name="cancellationToken">针对取消请求监视的标记。</param> /// <param name="callback">给定的读取器委托。</param> /// <returns>回调结果的值。</returns> public virtual Task <TValue> ToReaderAsync <TValue>(CancellationToken cancellationToken, ExecuteReaderHandler <TValue> callback) { return(this.ExecuteAsync(ExecuteType.Reader, cancellationToken, (dbCommand, ct) => { return dbCommand.ExecuteReaderAsync(ct).ContinueWith(t => { using (var reader = t.Result) { return callback(reader); } }); })); }
/// <summary> /// 异步执行查询命令,并执行给定的读取器的回调函数。 /// </summary> /// <typeparam name="TValue">返回值的数据类型。</typeparam> /// <param name="callback">给定的读取器委托。</param> /// <returns>回调结果的值。</returns> public virtual Task <TValue> ToReaderAsync <TValue>(ExecuteReaderHandler <TValue> callback) => this.ToReaderAsync(CancellationToken.None, callback);
/// <summary> /// 异步异步执行查询命令,并执行给定的读取器的回调函数。 /// </summary> /// <param name="callback">给定的读取器委托。</param> public Task ToReaderAsync(ExecuteReaderHandler callback) => this.ToReaderAsync(CancellationToken.None, callback);
DbResult <TValue> IDbExecutor.ToReader <TValue>(ExecuteReaderHandler <TValue> callback) { return(this.Execute().ToReader <TValue>(callback)); }
DbResult IDbExecutor.ToReader(ExecuteReaderHandler callback) { return(this.Execute().ToReader(callback)); }