/// <summary> /// Create an <see cref="IEnumerable"/> wrapper over an <see cref="IDataReader"/>. /// </summary> /// <param name="reader">The <see cref="IDataReader"/> to enumerate over.</param> /// <param name="cmd">The <see cref="IDbCommand"/> used to create the <see cref="IDataReader"/>.</param> /// <param name="sess">The <see cref="ISession"/> to use to load objects.</param> /// <param name="types">The <see cref="IType"/>s contained in the <see cref="IDataReader"/>.</param> /// <param name="columnNames">The names of the columns in the <see cref="IDataReader"/>.</param> /// <param name="selection">The <see cref="RowSelection"/> that should be applied to the <see cref="IDataReader"/>.</param> /// <param name="holderInstantiator">Instantiator of the result holder (used for "select new SomeClass(...)" queries).</param> /// <remarks> /// The <see cref="IDataReader"/> should already be positioned on the first record in <see cref="RowSelection"/>. /// </remarks> public EnumerableImpl(IDataReader reader, IDbCommand cmd, ISessionImplementor sess, IType[] types, string[][] columnNames, RowSelection selection, HolderInstantiator holderInstantiator) { _reader = reader; _cmd = cmd; _sess = sess; _types = types; _names = columnNames; _selection = selection; _holderInstantiator = holderInstantiator; _single = _types.Length == 1; }
/// <summary> /// Create an <see cref="IEnumerable"/> wrapper over an <see cref="IDataReader"/>. /// </summary> /// <param name="reader">The <see cref="IDataReader"/> to enumerate over.</param> /// <param name="cmd">The <see cref="IDbCommand"/> used to create the <see cref="IDataReader"/>.</param> /// <param name="session">The <see cref="ISession"/> to use to load objects.</param> /// <param name="readOnly"></param> /// <param name="types">The <see cref="IType"/>s contained in the <see cref="IDataReader"/>.</param> /// <param name="columnNames">The names of the columns in the <see cref="IDataReader"/>.</param> /// <param name="selection">The <see cref="RowSelection"/> that should be applied to the <see cref="IDataReader"/>.</param> /// <param name="holderInstantiator">Instantiator of the result holder (used for "select new SomeClass(...)" queries).</param> /// <remarks> /// The <see cref="IDataReader"/> should already be positioned on the first record in <see cref="RowSelection"/>. /// </remarks> public EnumerableImpl(IDataReader reader, IDbCommand cmd, IEventSource session, bool readOnly, IType[] types, string[][] columnNames, RowSelection selection, HolderInstantiator holderInstantiator) { _reader = reader; _cmd = cmd; _session = session; _readOnly = readOnly; _types = types; _names = columnNames; _selection = selection; _holderInstantiator = holderInstantiator; _single = _types.Length == 1; }