Esempio n. 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="source"></param>
 /// <param name="mapper"></param>
 /// <param name="disposing">释放回调</param>
 public QueryResultEnumerator(IResultSource source, IResultMapper <TEntity> mapper, Action <int> disposing)
 {
     mapper.TearUp(source);
     _disposing = disposing;
     _source    = source;
     _mapper    = mapper;
 }
Esempio n. 2
0
 void IDisposable.Dispose()
 {
     _current = default(TEntity);
     _mapper.TearDown();
     _source.Dispose();
     _disposing?.Invoke(_count);
     _source = null;
 }
Esempio n. 3
0
        public void TearUp(IResultSource source)
        {
            if (!IsSimpleType())
            {
                throw new InvalidProgramException("仅支持简单类型映射,如 int, short, long, decimal等");
            }
            underlyingType = Nullable.GetUnderlyingType(typeof(T));

            this.source = source;
        }
Esempio n. 4
0
 void IResultMapper <object> .TearUp(IResultSource source)
 {
     this.source = source;
 }
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="source"></param>
 public void TearUp(IResultSource source)
 {
     this.source = source;
 }
 /// <summary>
 /// 读取DataReader指定列的值
 /// </summary>
 /// <param name="source">源</param>
 /// <param name="column">列序号</param>
 /// <param name="convert">值转换器</param>
 /// <returns></returns>
 static object ReadValue(IResultSource source, int column, ValueConverter.ConvertDelegate convert)
 {
     return(convert(source[column]));
 }