internal static Task <List <T> > ExprConvertToListAsync <T>(this IDataReader dataReader, CancellationToken token) { var fieldDefs = ModelDefinition <T> .Definition.AllFieldDefinitionsArray; var dialectProvider = OrmLiteConfig.DialectProvider; using (dataReader) { var indexCache = dataReader.GetIndexFieldsCache(ModelDefinition <T> .Definition); return(dialectProvider.ReaderEach(dataReader, () => { var row = OrmLiteUtilExtensions.CreateInstance <T>(); row.PopulateWithSqlReader(dataReader, fieldDefs, indexCache); return row; }, token)); } }
//internal static List<T> LoadSelectAsync<T>(this IDbCommand dbCmd, Func<SqlExpression<T>, SqlExpression<T>> expression) //{ // var expr = OrmLiteConfig.DialectProvider.SqlExpression<T>(); // expr = expression(expr); // return dbCmd.LoadListWithReferencesAsync<T, T>(expr); //} //internal static List<T> LoadSelectAsync<T>(this IDbCommand dbCmd, SqlExpression<T> expression, CancellationToken token) //{ // return dbCmd.LoadListWithReferencesAsync<T, T>(expression); //} //internal static List<Into> LoadSelectAsync<Into, From>(this IDbCommand dbCmd, SqlExpression<From> expression, CancellationToken token) //{ // return dbCmd.LoadListWithReferencesAsync<Into, From>(expression); //} //internal static List<T> LoadSelectAsync<T>(this IDbCommand dbCmd, Expression<Func<T, bool>> predicate, CancellationToken token) //{ // var expr = OrmLiteConfig.DialectProvider.SqlExpression<T>().Where(predicate); // return dbCmd.LoadListWithReferencesAsync<T, T>(expr); //} internal static Task <T> ExprConvertToAsync <T>(this IDataReader dataReader, CancellationToken token) { var fieldDefs = ModelDefinition <T> .Definition.AllFieldDefinitionsArray; var dialectProvider = OrmLiteConfig.DialectProvider; using (dataReader) { return(dialectProvider.ReaderRead(dataReader, () => { var row = OrmLiteUtilExtensions.CreateInstance <T>(); var namingStrategy = OrmLiteConfig.DialectProvider.NamingStrategy; for (int i = 0; i < dataReader.FieldCount; i++) { var fieldDef = fieldDefs.FirstOrDefault(x => namingStrategy.GetColumnName(x.FieldName).ToUpper() == dataReader.GetName(i).ToUpper()); dialectProvider.SetDbValue(fieldDef, dataReader, i, row); } return row; }, token)); } }