Skip to content

Commit 43358ca

Browse files
committed
NH-3431: Fix implementation of DbDataReader inheritors
1 parent 9451916 commit 43358ca

File tree

4 files changed

+192
-243
lines changed

4 files changed

+192
-243
lines changed

src/NHibernate/AdoNet/ResultSetWrapper.cs

Lines changed: 47 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace NHibernate.AdoNet
1212
/// <seealso cref="IDataRecord.GetOrdinal"/>
1313
public class ResultSetWrapper : DbDataReader
1414
{
15-
private readonly DbDataReader rs;
15+
private DbDataReader rs;
1616
private readonly ColumnNameCache columnNameCache;
1717

1818
public ResultSetWrapper(DbDataReader resultSet, ColumnNameCache columnNameCache)
@@ -26,206 +26,192 @@ internal DbDataReader Target
2626
get { return rs; }
2727
}
2828

29-
#region DbDataReader Members
30-
31-
public void Close()
29+
public override void Close()
3230
{
3331
rs.Close();
3432
}
3533

36-
public DataTable GetSchemaTable()
34+
public override DataTable GetSchemaTable()
3735
{
3836
return rs.GetSchemaTable();
3937
}
4038

41-
public bool NextResult()
39+
public override bool NextResult()
4240
{
4341
return rs.NextResult();
4442
}
4543

46-
public bool Read()
44+
public override bool Read()
4745
{
4846
return rs.Read();
4947
}
5048

51-
public int Depth
49+
public override int Depth
5250
{
5351
get { return rs.Depth; }
5452
}
5553

56-
public bool IsClosed
54+
public override bool HasRows
5755
{
58-
get { return rs.IsClosed; }
56+
get { return rs.HasRows; }
5957
}
6058

61-
public int RecordsAffected
59+
public override bool IsClosed
6260
{
63-
get { return rs.RecordsAffected; }
61+
get { return rs.IsClosed; }
6462
}
6563

66-
#endregion
67-
68-
#region IDisposable Members
69-
private bool disposed;
70-
71-
~ResultSetWrapper()
64+
public override int RecordsAffected
7265
{
73-
Dispose(false);
66+
get { return rs.RecordsAffected; }
7467
}
7568

76-
public void Dispose()
77-
{
78-
Dispose(true);
79-
GC.SuppressFinalize(this);
80-
}
69+
private bool disposed;
8170

82-
private void Dispose(bool disposing)
71+
protected override void Dispose(bool disposing)
8372
{
8473
if (disposed)
8574
return;
8675

87-
if (disposing)
76+
if (disposing && rs != null)
8877
{
89-
if (rs != null)
90-
{
91-
if (!rs.IsClosed) rs.Close();
9278
rs.Dispose();
79+
rs = null;
9380
}
94-
}
9581

9682
disposed = true;
9783
}
98-
#endregion
99-
100-
#region IDataRecord Members
10184

102-
public string GetName(int i)
85+
public override string GetName(int i)
10386
{
10487
return rs.GetName(i);
10588
}
10689

107-
public string GetDataTypeName(int i)
90+
public override string GetDataTypeName(int i)
10891
{
10992
return rs.GetDataTypeName(i);
11093
}
11194

112-
public System.Type GetFieldType(int i)
95+
public override IEnumerator GetEnumerator()
96+
{
97+
return rs.GetEnumerator();
98+
}
99+
100+
public override System.Type GetFieldType(int i)
113101
{
114102
return rs.GetFieldType(i);
115103
}
116104

117-
public object GetValue(int i)
105+
public override object GetValue(int i)
118106
{
119107
return rs.GetValue(i);
120108
}
121109

122-
public int GetValues(object[] values)
110+
public override int GetValues(object[] values)
123111
{
124112
return rs.GetValues(values);
125113
}
126114

127-
public int GetOrdinal(string name)
115+
public override int GetOrdinal(string name)
128116
{
129117
return columnNameCache.GetIndexForColumnName(name, this);
130118
}
131119

132-
public bool GetBoolean(int i)
120+
public override bool GetBoolean(int i)
133121
{
134122
return rs.GetBoolean(i);
135123
}
136124

137-
public byte GetByte(int i)
125+
public override byte GetByte(int i)
138126
{
139127
return rs.GetByte(i);
140128
}
141129

142-
public long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
130+
public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
143131
{
144132
return rs.GetBytes(i, fieldOffset, buffer, bufferoffset, length);
145133
}
146134

147-
public char GetChar(int i)
135+
public override char GetChar(int i)
148136
{
149137
return rs.GetChar(i);
150138
}
151139

152-
public long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
140+
public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
153141
{
154142
return rs.GetChars(i, fieldoffset, buffer, bufferoffset, length);
155143
}
156144

157-
public Guid GetGuid(int i)
145+
public override Guid GetGuid(int i)
158146
{
159147
return rs.GetGuid(i);
160148
}
161149

162-
public short GetInt16(int i)
150+
public override short GetInt16(int i)
163151
{
164152
return rs.GetInt16(i);
165153
}
166154

167-
public int GetInt32(int i)
155+
public override int GetInt32(int i)
168156
{
169157
return rs.GetInt32(i);
170158
}
171159

172-
public long GetInt64(int i)
160+
public override long GetInt64(int i)
173161
{
174162
return rs.GetInt64(i);
175163
}
176164

177-
public float GetFloat(int i)
165+
public override float GetFloat(int i)
178166
{
179167
return rs.GetFloat(i);
180168
}
181169

182-
public double GetDouble(int i)
170+
public override double GetDouble(int i)
183171
{
184172
return rs.GetDouble(i);
185173
}
186174

187-
public string GetString(int i)
175+
public override string GetString(int i)
188176
{
189177
return rs.GetString(i);
190178
}
191179

192-
public decimal GetDecimal(int i)
180+
public override decimal GetDecimal(int i)
193181
{
194182
return rs.GetDecimal(i);
195183
}
196184

197-
public DateTime GetDateTime(int i)
185+
public override DateTime GetDateTime(int i)
198186
{
199187
return rs.GetDateTime(i);
200188
}
201189

202-
public DbDataReader GetData(int i)
190+
protected override DbDataReader GetDbDataReader(int ordinal)
203191
{
204-
return rs.GetData(i);
192+
return rs.GetData(ordinal);
205193
}
206194

207-
public bool IsDBNull(int i)
195+
public override bool IsDBNull(int i)
208196
{
209197
return rs.IsDBNull(i);
210198
}
211199

212-
public int FieldCount
200+
public override int FieldCount
213201
{
214202
get { return rs.FieldCount; }
215203
}
216204

217-
public object this[int i]
205+
public override object this[int i]
218206
{
219207
get { return rs[i]; }
220208
}
221209

222-
public object this[string name]
210+
public override object this[string name]
223211
{
224212
get { return rs[columnNameCache.GetIndexForColumnName(name, this)]; }
225213
}
226214

227-
#endregion
228-
229215
public override bool Equals(object obj)
230216
{
231217
return rs.Equals(obj);

0 commit comments

Comments
 (0)