internal static IEnumerable <T> WhereLazy <T>(this IDbCommand dbCmd, object anonType) { dbCmd.SetFilters <T>(anonType); if (OrmLiteConfig.ResultsFilter != null) { foreach (var item in OrmLiteConfig.ResultsFilter.GetList <T>(dbCmd)) { yield return(item); } yield break; } var dialectProvider = dbCmd.GetDialectProvider(); using (var reader = dbCmd.ExecuteReader()) { var indexCache = reader.GetIndexFieldsCache(ModelDefinition <T> .Definition, dialectProvider); var values = new object[reader.FieldCount]; while (reader.Read()) { var row = OrmLiteUtils.CreateInstance <T>(); row.PopulateWithSqlReader(dialectProvider, reader, indexCache, values); yield return(row); } } }
internal static IEnumerable <T> SelectLazy <T>(this IDbCommand dbCmd, string sql, object anonType = null) { if (anonType != null) { dbCmd.SetParameters <T>(anonType, excludeDefaults: false); } var dialectProvider = dbCmd.GetDialectProvider(); dbCmd.CommandText = dialectProvider.ToSelectStatement(typeof(T), sql); var resultsFilter = OrmLiteConfig.ResultsFilter; if (resultsFilter != null) { foreach (var item in resultsFilter.GetList <T>(dbCmd)) { yield return(item); } yield break; } using (var reader = dbCmd.ExecuteReader()) { var indexCache = reader.GetIndexFieldsCache(ModelDefinition <T> .Definition, dialectProvider); var values = new object[reader.FieldCount]; while (reader.Read()) { var row = OrmLiteUtils.CreateInstance <T>(); row.PopulateWithSqlReader(dialectProvider, reader, indexCache, values); yield return(row); } } }
internal static IEnumerable <T> SelectLazyFmt <T>(this IDbCommand dbCmd, string filter, params object[] filterParams) { var dialectProvider = dbCmd.GetDialectProvider(); dbCmd.CommandText = dialectProvider.ToSelectStatement(typeof(T), filter, filterParams); if (OrmLiteConfig.ResultsFilter != null) { foreach (var item in OrmLiteConfig.ResultsFilter.GetList <T>(dbCmd)) { yield return(item); } yield break; } var fieldDefs = ModelDefinition <T> .Definition.FieldDefinitionsArray; using (var reader = dbCmd.ExecReader(dbCmd.CommandText)) { var indexCache = reader.GetIndexFieldsCache(ModelDefinition <T> .Definition); while (reader.Read()) { var row = OrmLiteUtils.CreateInstance <T>(); row.PopulateWithSqlReader(dialectProvider, reader, fieldDefs, indexCache); yield return(row); } } }
internal static Task <List <T> > ExprConvertToListAsync <T>(this IDataReader reader, IOrmLiteDialectProvider dialectProvider, CancellationToken token) { var indexCache = reader.GetIndexFieldsCache(ModelDefinition <T> .Definition, dialectProvider); var values = new object[reader.FieldCount]; return(dialectProvider.ReaderEach(reader, () => { var row = OrmLiteUtils.CreateInstance <T>(); row.PopulateWithSqlReader(dialectProvider, reader, indexCache, values); return row; }, token)); }
internal static Task <List <T> > ExprConvertToListAsync <T>(this IDataReader dataReader, IOrmLiteDialectProvider dialectProvider, CancellationToken token) { var fieldDefs = ModelDefinition <T> .Definition.AllFieldDefinitionsArray; var indexCache = dataReader.GetIndexFieldsCache(ModelDefinition <T> .Definition); return(dialectProvider.ReaderEach(dataReader, () => { var row = OrmLiteUtils.CreateInstance <T>(); row.PopulateWithSqlReader(dialectProvider, dataReader, fieldDefs, indexCache); return row; }, token)); }