Skip to content

Commit 3ab5436

Browse files
committed
QuerySingle<T5>(commandText, commandType, parameters, splitOn)
1 parent 564eb3f commit 3ab5436

4 files changed

Lines changed: 17 additions & 1 deletion

File tree

src/Dibix/Access/DatabaseAccessor.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,14 @@ protected DatabaseAccessor(DbConnection connection, Action onDispose)
107107
.Single();
108108
});
109109

110+
public TReturn QuerySingle<TReturn, TSecond, TThird, TFourth, TFifth>(string commandText, CommandType commandType, ParametersVisitor parameters, string splitOn) where TReturn : new() => Execute(commandText, commandType, parameters, () =>
111+
{
112+
MultiMapper multiMapper = new MultiMapper();
113+
return this.QueryMany<TReturn, TSecond, TThird, TFourth, TFifth, TReturn>(commandText, commandType, parameters, (a, b, c, d, e) => multiMapper.MapRow<TReturn>(useProjection: false, a, b, c, d, e), splitOn)
114+
.PostProcess(multiMapper)
115+
.Single();
116+
});
117+
110118
T IDatabaseAccessor.QuerySingleOrDefault<T>(string commandText, CommandType commandType, ParametersVisitor parameters) => Execute(commandText, commandType, parameters, () => this.QuerySingleOrDefault<T>(commandText, commandType, parameters).PostProcess());
111119

112120
IMultipleResultReader IDatabaseAccessor.QueryMultiple(string commandText, CommandType commandType, ParametersVisitor parameters) => Execute(commandText, commandType, parameters, () => this.QueryMultiple(commandText, commandType, parameters));

src/Dibix/Access/DatabaseAccessorExtensions.QuerySingle.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,12 @@ public static TReturn QuerySingle<TReturn, TSecond, TThird, TFourth>(this IDatab
9393
}, splitOn);
9494
return cache.Single();
9595
}
96+
97+
// OrderManagement (LoadOrder)
98+
public static TReturn QuerySingle<TReturn, TSecond, TThird, TFourth, TFifth>(this IDatabaseAccessor accessor, string commandText, ParametersVisitor parameters, string splitOn) where TReturn : new()
99+
{
100+
Guard.IsNotNull(accessor, nameof(accessor));
101+
return accessor.QuerySingle<TReturn, TSecond, TThird, TFourth, TFifth>(commandText, CommandType.Text, parameters, splitOn);
102+
}
96103
}
97104
}

src/Dibix/Access/IDatabaseAccessor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public interface IDatabaseAccessor : IDisposable
2828
TReturn QuerySingle<TReturn, TSecond>(string commandText, CommandType commandType, ParametersVisitor parameters, string splitOn) where TReturn : new();
2929
TReturn QuerySingle<TReturn, TSecond, TThird>(string commandText, CommandType commandType, ParametersVisitor parameters, string splitOn) where TReturn : new();
3030
TReturn QuerySingle<TReturn, TSecond, TThird, TFourth>(string commandText, CommandType commandType, ParametersVisitor parameters, string splitOn) where TReturn : new();
31+
TReturn QuerySingle<TReturn, TSecond, TThird, TFourth, TFifth>(string commandText, CommandType commandType, ParametersVisitor parameters, string splitOn) where TReturn : new();
3132
T QuerySingleOrDefault<T>(string commandText, CommandType commandType, ParametersVisitor parameters);
3233
IMultipleResultReader QueryMultiple(string commandText, CommandType commandType, ParametersVisitor parameters);
3334
Task<IMultipleResultReader> QueryMultipleAsync(string commandText, CommandType commandType, ParametersVisitor parameters, CancellationToken cancellationToken);

tests/Dibix.Tests/StructuredTypeTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ private class X : StructuredType<X, int, string>
2828
public void Add(int intValue, string stringValue) => base.AddValues(intValue, stringValue);
2929
}
3030
}
31-
}
31+
}

0 commit comments

Comments
 (0)