예제 #1
0
 /// <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));
     }
 });
예제 #2
0
 /// <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);
 });
예제 #3
0
 /// <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);
         }
     }));
 }
예제 #4
0
 /// <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);
     }));
 }
예제 #5
0
 /// <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;
         });
     }));
 }
예제 #6
0
        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());
        }
예제 #7
0
 /// <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);
             }
         });
     }));
 }
예제 #8
0
 /// <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);
예제 #9
0
 /// <summary>
 /// 异步异步执行查询命令,并执行给定的读取器的回调函数。
 /// </summary>
 /// <param name="callback">给定的读取器委托。</param>
 public Task ToReaderAsync(ExecuteReaderHandler callback) => this.ToReaderAsync(CancellationToken.None, callback);
예제 #10
0
 DbResult <TValue> IDbExecutor.ToReader <TValue>(ExecuteReaderHandler <TValue> callback)
 {
     return(this.Execute().ToReader <TValue>(callback));
 }
예제 #11
0
 DbResult IDbExecutor.ToReader(ExecuteReaderHandler callback)
 {
     return(this.Execute().ToReader(callback));
 }