Skip to content

Commit e262f12

Browse files
David EllingsworthDavid Ellingsworth
David Ellingsworth
authored and
David Ellingsworth
committed
GH-3530: Add a DbDataReader for performing direct casts of values returned from the indexer method.
1 parent ea33f7c commit e262f12

File tree

1 file changed

+154
-0
lines changed

1 file changed

+154
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
using System;
2+
using System.Collections;
3+
using System.Data.Common;
4+
using System.Diagnostics.CodeAnalysis;
5+
6+
namespace NHibernate.Driver
7+
{
8+
public class DirectCastDbDataReader : DbDataReader
9+
{
10+
private readonly DbDataReader _reader;
11+
12+
public DirectCastDbDataReader(DbDataReader dbDataReader)
13+
{
14+
_reader = dbDataReader;
15+
}
16+
17+
public override object this[int ordinal] => _reader[ordinal];
18+
19+
public override object this[string name] => _reader[name];
20+
21+
public override int Depth => _reader.Depth;
22+
23+
public override int FieldCount => _reader.FieldCount;
24+
25+
public override bool HasRows => _reader.HasRows;
26+
27+
public override bool IsClosed => _reader.IsClosed;
28+
29+
public override int RecordsAffected => _reader.RecordsAffected;
30+
31+
public override bool GetBoolean(int ordinal)
32+
{
33+
return (bool) _reader[ordinal];
34+
}
35+
36+
public override byte GetByte(int ordinal)
37+
{
38+
return (byte) _reader[ordinal];
39+
}
40+
41+
public override long GetBytes(int ordinal, long dataOffset, byte[] buffer, int bufferOffset, int length)
42+
{
43+
return _reader.GetBytes(ordinal, dataOffset, buffer, bufferOffset, length);
44+
}
45+
46+
public override char GetChar(int ordinal)
47+
{
48+
return (char) _reader[ordinal];
49+
}
50+
51+
public override long GetChars(int ordinal, long dataOffset, char[] buffer, int bufferOffset, int length)
52+
{
53+
return _reader.GetChars(ordinal, dataOffset, buffer, bufferOffset, length);
54+
}
55+
56+
public override string GetDataTypeName(int ordinal)
57+
{
58+
return _reader.GetDataTypeName(ordinal);
59+
}
60+
61+
public override DateTime GetDateTime(int ordinal)
62+
{
63+
return (DateTime) _reader[ordinal];
64+
}
65+
66+
public override decimal GetDecimal(int ordinal)
67+
{
68+
return (decimal) _reader[ordinal];
69+
}
70+
71+
public override double GetDouble(int ordinal)
72+
{
73+
return (double) _reader[ordinal];
74+
}
75+
76+
public override IEnumerator GetEnumerator()
77+
{
78+
while (_reader.Read())
79+
{
80+
yield return this;
81+
}
82+
}
83+
84+
public override System.Type GetFieldType(int ordinal)
85+
{
86+
return _reader.GetFieldType(ordinal);
87+
}
88+
89+
public override float GetFloat(int ordinal)
90+
{
91+
return (float) _reader[ordinal];
92+
}
93+
94+
public override Guid GetGuid(int ordinal)
95+
{
96+
return (Guid) _reader[ordinal];
97+
}
98+
99+
public override short GetInt16(int ordinal)
100+
{
101+
return (short) _reader[ordinal];
102+
}
103+
104+
public override int GetInt32(int ordinal)
105+
{
106+
return (int) _reader[ordinal];
107+
}
108+
109+
public override long GetInt64(int ordinal)
110+
{
111+
return (long) _reader[ordinal];
112+
}
113+
114+
public override string GetName(int ordinal)
115+
{
116+
return (string) _reader[ordinal];
117+
}
118+
119+
public override int GetOrdinal(string name)
120+
{
121+
return _reader.GetOrdinal(name);
122+
}
123+
124+
public override string GetString(int ordinal)
125+
{
126+
return (string) _reader[ordinal];
127+
}
128+
129+
public override object GetValue(int ordinal)
130+
{
131+
return _reader.GetValue(ordinal);
132+
}
133+
134+
public override int GetValues(object[] values)
135+
{
136+
return _reader.GetValues(values);
137+
}
138+
139+
public override bool IsDBNull(int ordinal)
140+
{
141+
return _reader.IsDBNull(ordinal);
142+
}
143+
144+
public override bool NextResult()
145+
{
146+
return _reader.NextResult();
147+
}
148+
149+
public override bool Read()
150+
{
151+
return _reader.Read();
152+
}
153+
}
154+
}

0 commit comments

Comments
 (0)