/// <summary> /// 创建实例。 /// </summary> /// <param name="query">数据查询。</param> /// <param name="reader">数据查询读取器。</param> /// <param name="type">类型。</param> public DataQueryEnumerator(IDataQuery <T> query, IDataQueryReader reader, System.Type type) { _query = query; _reader = reader; _dataBinderObjectCache = query?.DataBinderObjectCache; _type = type; query?.DataContext.DisposableObjects.Add(this); }
void DisposeDataBinderObjectCache() { if (_dataBinderObjectCacheMyCreated) { _dataBinderObjectCache?.Dispose(); _dataBinderObjectCacheMyCreated = false; } _dataBinderObjectCache = null; }
/// <summary> /// 获取迭代器。 /// </summary> /// <returns></returns> public virtual System.Collections.Generic.IEnumerator <T> GetEnumerator() { if (_dataBinderObjectCache == null) { _dataBinderObjectCache = new Binding.DataBinderObjectCache(); _dataBinderObjectCacheMyCreated = true; } return(new DataQueryEnumerator <T>(_dataContext, ExecuteReader(), Type) { Callback = Callback, DataBinderObjectCache = _dataBinderObjectCache }); }