@@ -21,70 +21,70 @@ public static T CreateInstance<T>()
21
21
public static Task < T > ConvertToAsync < T > ( this IDataReader dataReader , IOrmLiteDialectProvider dialectProvider , CancellationToken token )
22
22
{
23
23
var fieldDefs = ModelDefinition < T > . Definition . AllFieldDefinitionsArray ;
24
- using ( dataReader )
24
+ return dialectProvider . ReaderRead ( dataReader , ( ) =>
25
25
{
26
- return dialectProvider . ReaderRead ( dataReader , ( ) =>
27
- {
28
- var row = CreateInstance < T > ( ) ;
29
- var indexCache = dataReader . GetIndexFieldsCache ( ModelDefinition < T > . Definition ) ;
30
- row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
31
- return row ;
32
- } , token ) ;
33
- }
26
+ var row = CreateInstance < T > ( ) ;
27
+ var indexCache = dataReader . GetIndexFieldsCache ( ModelDefinition < T > . Definition ) ;
28
+ row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
29
+ return row ;
30
+ } , token ) . Then ( t => {
31
+ dataReader . Dispose ( ) ;
32
+ return t ;
33
+ } ) ;
34
34
}
35
35
36
36
public static Task < List < T > > ConvertToListAsync < T > ( this IDataReader dataReader , IOrmLiteDialectProvider dialectProvider , CancellationToken token )
37
37
{
38
38
var fieldDefs = ModelDefinition < T > . Definition . AllFieldDefinitionsArray ;
39
- using ( dataReader )
39
+ var indexCache = dataReader . GetIndexFieldsCache ( ModelDefinition < T > . Definition ) ;
40
+ return dialectProvider . ReaderEach ( dataReader , ( ) =>
40
41
{
41
- var indexCache = dataReader . GetIndexFieldsCache ( ModelDefinition < T > . Definition ) ;
42
- return dialectProvider . ReaderEach ( dataReader , ( ) =>
43
- {
44
- var row = CreateInstance < T > ( ) ;
45
- row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
46
- return row ;
47
- } , token ) ;
48
- }
42
+ var row = CreateInstance < T > ( ) ;
43
+ row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
44
+ return row ;
45
+ } , token ) . Then ( t => {
46
+ dataReader . Dispose ( ) ;
47
+ return t ;
48
+ } ) ;
49
49
}
50
50
51
51
public static Task < object > ConvertToAsync ( this IDataReader dataReader , IOrmLiteDialectProvider dialectProvider , Type type , CancellationToken token )
52
52
{
53
53
var modelDef = type . GetModelDefinition ( ) ;
54
54
var fieldDefs = modelDef . AllFieldDefinitionsArray ;
55
55
56
- using ( dataReader )
56
+ return dialectProvider . ReaderRead ( dataReader , ( ) =>
57
+ {
58
+ var row = type . CreateInstance ( ) ;
59
+ var indexCache = dataReader . GetIndexFieldsCache ( modelDef ) ;
60
+ row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
61
+ return row ;
62
+ } , token ) . Then ( t =>
57
63
{
58
- return dialectProvider . ReaderRead ( dataReader , ( ) =>
59
- {
60
- var row = type . CreateInstance ( ) ;
61
- var indexCache = dataReader . GetIndexFieldsCache ( modelDef ) ;
62
- row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
63
- return row ;
64
- } , token ) ;
65
- }
64
+ dataReader . Dispose ( ) ;
65
+ return t ;
66
+ } ) ;
66
67
}
67
68
68
69
public static Task < IList > ConvertToListAsync ( this IDataReader dataReader , IOrmLiteDialectProvider dialectProvider , Type type , CancellationToken token )
69
70
{
70
71
var modelDef = type . GetModelDefinition ( ) ;
71
72
var fieldDefs = modelDef . AllFieldDefinitionsArray ;
72
73
73
- using ( dataReader )
74
+ var indexCache = dataReader . GetIndexFieldsCache ( modelDef ) ;
75
+ return dialectProvider . ReaderEach ( dataReader , ( ) =>
74
76
{
75
- var indexCache = dataReader . GetIndexFieldsCache ( modelDef ) ;
76
- return dialectProvider . ReaderEach ( dataReader , ( ) =>
77
- {
78
- var row = type . CreateInstance ( ) ;
79
- row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
80
- return row ;
81
- } , token )
82
- . Then ( x => {
83
- var to = ( IList ) typeof ( List < > ) . MakeGenericType ( type ) . CreateInstance ( ) ;
84
- x . Each ( o => to . Add ( o ) ) ;
85
- return to ;
86
- } ) ;
87
- }
77
+ var row = type . CreateInstance ( ) ;
78
+ row . PopulateWithSqlReader ( dialectProvider , dataReader , fieldDefs , indexCache ) ;
79
+ return row ;
80
+ } , token )
81
+ . Then ( x =>
82
+ {
83
+ dataReader . Dispose ( ) ;
84
+ var to = ( IList ) typeof ( List < > ) . MakeGenericType ( type ) . CreateInstance ( ) ;
85
+ x . Each ( o => to . Add ( o ) ) ;
86
+ return to ;
87
+ } ) ;
88
88
}
89
89
}
90
90
}
0 commit comments