Skip to content

Commit 301c07a

Browse files
committed
Implement internal DefaultTransaction class instead of plain object
1 parent eea073f commit 301c07a

2 files changed

Lines changed: 58 additions & 16 deletions

File tree

DirectSQL/Database.cs

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,11 @@ private static int ExecuteNonQueryCore(
151151
string sql,
152152
P[] parameters,
153153
C connection,
154-
Object transaction)
154+
IDbTransaction transaction)
155155
{
156156
using( var command = (CMD) connection.CreateCommand())
157157
{
158-
if( transaction != defaultTransaction)
158+
if( transaction != DefaultTransaction.defaultTransaction)
159159
command.Transaction = (T) transaction;
160160

161161
command.CommandText = sql;
@@ -200,7 +200,8 @@ private static int ExecuteNonQuery(
200200
sql,
201201
parameters,
202202
connection,
203-
defaultTransaction);
203+
DefaultTransaction.defaultTransaction
204+
);
204205
}
205206

206207
/// <summary>
@@ -242,7 +243,7 @@ C connection
242243
sql,
243244
ConvertToDbParameter(parameters),
244245
connection,
245-
defaultTransaction
246+
DefaultTransaction.defaultTransaction
246247
);
247248
}
248249

@@ -342,11 +343,11 @@ public static object ExecuteScalarCore(
342343
string sql,
343344
P[] parameters,
344345
C connection,
345-
Object transaction)
346+
IDbTransaction transaction)
346347
{
347348
using (var command = (CMD) connection.CreateCommand())
348349
{
349-
if( transaction != defaultTransaction)
350+
if( transaction != DefaultTransaction.defaultTransaction)
350351
{
351352
command.Transaction = (T)transaction;
352353
}
@@ -397,7 +398,7 @@ public static object ExecuteScalar(
397398
sql,
398399
new P[0],
399400
connection,
400-
defaultTransaction
401+
DefaultTransaction.defaultTransaction
401402
);
402403
}
403404

@@ -430,7 +431,12 @@ public static object ExecuteScalar(
430431
P[] parameters,
431432
C connection)
432433
{
433-
return ExecuteScalarCore(sql,parameters,connection,defaultTransaction);
434+
return ExecuteScalarCore(
435+
sql,
436+
parameters,
437+
connection,
438+
DefaultTransaction.defaultTransaction
439+
);
434440
}
435441

436442
/// <summary>
@@ -471,7 +477,7 @@ public static object ExecuteScalar(
471477
sql,
472478
ConvertToDbParameter(parameters),
473479
connection,
474-
defaultTransaction
480+
DefaultTransaction.defaultTransaction
475481
);
476482
}
477483

@@ -878,9 +884,6 @@ public static async Task<dynamic[]> LoadFormattableSqlResultAsync(
878884
transaction);
879885
}
880886

881-
//Marker object indicates default transaction is used.
882-
internal static readonly Object defaultTransaction = new Object();
883-
884887
public class SqlResult: DirectSQL.SqlResult<R,CMD,T,C,P>
885888
{
886889
internal SqlResult(
@@ -891,5 +894,36 @@ internal SqlResult(
891894
{
892895
}
893896
}
897+
898+
internal class DefaultTransaction : IDbTransaction
899+
{
900+
901+
//Marker object indicates default transaction is used.
902+
internal static readonly DefaultTransaction defaultTransaction = new DefaultTransaction();
903+
904+
private DefaultTransaction()
905+
{
906+
907+
}
908+
909+
public void Dispose()
910+
{
911+
throw new NotImplementedException();
912+
}
913+
914+
public void Commit()
915+
{
916+
throw new NotImplementedException();
917+
}
918+
919+
public void Rollback()
920+
{
921+
throw new NotImplementedException();
922+
}
923+
924+
public IDbConnection Connection { get; }
925+
public IsolationLevel IsolationLevel { get; }
926+
}
927+
894928
}
895929
}

DirectSQL/SqlResult.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ private SqlResult (
143143
String sql,
144144
P[] parameters,
145145
C connection,
146-
Object transaction)
146+
IDbTransaction transaction)
147147
{
148148
_command = (CMD) connection.CreateCommand();
149149

@@ -153,7 +153,10 @@ private SqlResult (
153153
_command.Parameters.Add(param);
154154
}
155155

156-
if(transaction != Database<C,T,CMD,R,P>.defaultTransaction) {
156+
if(transaction !=
157+
Database<C,T,CMD,R,P>
158+
.DefaultTransaction
159+
.defaultTransaction) {
157160
_command.Transaction = (T)transaction;
158161
}
159162

@@ -164,14 +167,19 @@ internal SqlResult (
164167
String sql,
165168
P[] parameters,
166169
C connection,
167-
T transaction) : this( sql, parameters, connection, (Object) transaction)
170+
T transaction) : this( sql, parameters, connection, (IDbTransaction) transaction)
168171
{
169172
}
170173

171174
internal SqlResult (
172175
String sql,
173176
P[] parameters,
174-
C connection) : this( sql, parameters, connection, Database<C, T, CMD, R, P>.defaultTransaction)
177+
C connection) :
178+
this(
179+
sql,
180+
parameters,
181+
connection,
182+
Database<C, T, CMD, R, P>.DefaultTransaction.defaultTransaction)
175183
{
176184
}
177185

0 commit comments

Comments
 (0)