private static T ConvertTo <T>(IDataReader dataReader) { var fieldDefs = ModelDefinition <T> .Definition.AllFieldDefinitionsArray; using (dataReader) { if (dataReader.Read()) { 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()); if (fieldDef == null) { continue; } var value = dataReader.GetValue(i); fieldDef.SetValue(row, value); } return(row); } return(default(T)); } }
private static IEnumerable <T> Each <T>(this IDbCommand dbCmd) { var fieldDefs = ModelDefinition <T> .Definition.FieldDefinitionsArray; using (var reader = dbCmd.ExecuteReader()) { var indexCache = reader.GetIndexFieldsCache(ModelDefinition <T> .Definition); while (reader.Read()) { var row = OrmLiteUtilExtensions.CreateInstance <T>(); row.PopulateWithSqlReader(reader, fieldDefs, indexCache); yield return(row); } } }
private static List <T> ConvertToList <T>(IDataReader dataReader) { var fieldDefs = ModelDefinition <T> .Definition.AllFieldDefinitionsArray; var fieldDefCache = new Dictionary <int, FieldDefinition>(); var to = new List <T>(); using (dataReader) { while (dataReader.Read()) { var row = OrmLiteUtilExtensions.CreateInstance <T>(); var namingStrategy = OrmLiteConfig.DialectProvider.NamingStrategy; for (int i = 0; i < dataReader.FieldCount; i++) { FieldDefinition fieldDef; if (!fieldDefCache.TryGetValue(i, out fieldDef)) { fieldDef = fieldDefs.FirstOrDefault( x => namingStrategy.GetColumnName(x.FieldName).ToUpper() == dataReader.GetName(i).ToUpper()); fieldDefCache[i] = fieldDef; } if (fieldDef == null) { continue; } var value = dataReader.GetValue(i); fieldDef.SetValue(row, value); } to.Add(row); } } return(to); }