@@ -11,22 +11,44 @@ public static dynamic ToDynamicRecord(this IDataRecord dataRecord)
1111 return ToDynamicRecord ( dataRecord , null , null ) ;
1212 }
1313
14+ public static dynamic ToDynamicRecord ( this IDataRecord dataRecord , OptimizedDictionaryIndex < string > index )
15+ {
16+ return ToDynamicRecord ( dataRecord , index , null , null ) ;
17+ }
18+
1419 public static dynamic ToDynamicRecord ( this IDataRecord dataRecord , string tableName , Database database )
1520 {
1621 return new SimpleRecord ( dataRecord . ToDictionary ( ) , tableName , database ) ;
1722 }
1823
24+ public static dynamic ToDynamicRecord ( this IDataRecord dataRecord , OptimizedDictionaryIndex < string > index , string tableName , Database database )
25+ {
26+ return new SimpleRecord ( dataRecord . ToDictionary ( index ) , tableName , database ) ;
27+ }
28+
1929 public static Dictionary < string , object > ToDictionary ( this IDataRecord dataRecord )
2030 {
2131 return dataRecord . GetFieldNames ( ) . ToDictionary ( fieldName => fieldName , fieldName => dataRecord [ fieldName ] ) ;
2232 }
2333
34+ public static IDictionary < string , object > ToDictionary ( this IDataRecord dataRecord , OptimizedDictionaryIndex < string > index )
35+ {
36+ return OptimizedDictionary . Create ( index , dataRecord . GetValues ( ) ) ;
37+ }
38+
2439 public static IEnumerable < string > GetFieldNames ( this IDataRecord dataRecord )
2540 {
2641 for ( int i = 0 ; i < dataRecord . FieldCount ; i ++ )
2742 {
2843 yield return dataRecord . GetName ( i ) ;
2944 }
3045 }
46+
47+ public static IEnumerable < object > GetValues ( this IDataRecord dataRecord )
48+ {
49+ var values = new object [ dataRecord . FieldCount ] ;
50+ dataRecord . GetValues ( values ) ;
51+ return values ;
52+ }
3153 }
3254}
0 commit comments