@@ -82,7 +82,15 @@ public static void ExecuteStoredProcedure(this Database database, object storedP
8282#endif
8383
8484#if EFCORE && ! EFCORE_2X
85- // NEED TEXT!
85+ /// <summary>
86+ /// Executes the specified stored procedure against a database
87+ /// and returns an enumerable of T representing the data returned.
88+ /// </summary>
89+ /// <typeparam name="T">Type of the data returned from the stored procedure.</typeparam>
90+ /// <param name="database">The database to execute against.</param>
91+ /// <param name="storedProcedure">The stored procedure to execute.</param>
92+ /// <param name="cancellationToken">The cancellation token.</param>
93+ /// <returns></returns>
8694 public static async Task ExecuteStoredProcedureAsync ( this DatabaseFacade database , object storedProcedure , CancellationToken cancellationToken = default )
8795 {
8896 if ( storedProcedure == null )
@@ -101,7 +109,15 @@ public static async Task ExecuteStoredProcedureAsync(this DatabaseFacade databas
101109#endif
102110
103111#if NET45
104- // NEED TEXT!
112+ /// <summary>
113+ /// Executes the specified stored procedure against a database
114+ /// and returns an enumerable of T representing the data returned.
115+ /// </summary>
116+ /// <typeparam name="T">Type of the data returned from the stored procedure.</typeparam>
117+ /// <param name="database">The database to execute against.</param>
118+ /// <param name="storedProcedure">The stored procedure to execute.</param>
119+ /// <param name="cancellationToken">The cancellation token.</param>
120+ /// <returns></returns>
105121 public static async Task ExecuteStoredProcedureAsync ( this Database database , object storedProcedure , CancellationToken cancellationToken = default )
106122 {
107123 if ( storedProcedure == null )
@@ -178,6 +194,7 @@ public static IEnumerable<T> ExecuteStoredProcedure<T>(this DatabaseFacade datab
178194 /// <typeparam name="T">Type of the data returned from the stored procedure.</typeparam>
179195 /// <param name="database">The database to execute against.</param>
180196 /// <param name="storedProcedure">The stored procedure to execute.</param>
197+ /// <param name="cancellationToken">The cancellation token.</param>
181198 /// <returns></returns>
182199 public static async Task < IEnumerable < T > > ExecuteStoredProcedureAsync < T > ( this DatabaseFacade database , object storedProcedure , CancellationToken cancellationToken = default )
183200 {
@@ -251,6 +268,22 @@ public static T ExecuteStoredProcedureFirstOrDefault<T>(this DatabaseFacade data
251268 {
252269 return database . ExecuteStoredProcedure < T > ( storedProcedure ) . FirstOrDefault ( ) ;
253270 }
271+
272+ /// <summary>
273+ /// Executes the specified stored procedure against a database asynchronously
274+ /// and returns the first or default value
275+ /// </summary>
276+ /// <typeparam name="T">Type of the data returned from the stored procedure.</typeparam>
277+ /// <param name="database">The database to execute against.</param>
278+ /// <param name="storedProcedure">The stored procedure to execute.</param>
279+ /// <param name="cancellationToken">The cancellation token.</param>
280+ /// <returns></returns>
281+ public static async Task < T > ExecuteStoredProcedureFirstOrDefaultAsync < T > ( this Database database , object storedProcedure , CancellationToken cancellationToken = default )
282+ {
283+ var executed = await database . ExecuteStoredProcedureAsync < T > ( storedProcedure , cancellationToken ) . ConfigureAwait ( false ) ;
284+
285+ return executed . FirstOrDefault ( ) ;
286+ }
254287#else
255288 public static IEnumerable < T > ExecuteStoredProcedure < T > ( this Database database , object storedProcedure )
256289 {
@@ -276,6 +309,7 @@ public static IEnumerable<T> ExecuteStoredProcedure<T>(this Database database, o
276309 /// <typeparam name="T">Type of the data returned from the stored procedure.</typeparam>
277310 /// <param name="database">The database to execute against.</param>
278311 /// <param name="storedProcedure">The stored procedure to execute.</param>
312+ /// <param name="cancellationToken">The cancellation token.</param>
279313 /// <returns></returns>
280314 public static async Task < IEnumerable < T > > ExecuteStoredProcedureAsync < T > ( this Database database , object storedProcedure , CancellationToken cancellationToken = default )
281315 {
@@ -293,7 +327,7 @@ public static async Task<IEnumerable<T>> ExecuteStoredProcedureAsync<T>(this Dat
293327#endif
294328
295329 /// <summary>
296- /// Executes the specified stored procedure against a database asynchronously
330+ /// Executes the specified stored procedure against a database
297331 /// and returns the first or default value
298332 /// </summary>
299333 /// <typeparam name="T">Type of the data returned from the stored procedure.</typeparam>
@@ -304,6 +338,22 @@ public static T ExecuteStoredProcedureFirstOrDefault<T>(this Database database,
304338 {
305339 return database . ExecuteStoredProcedure < T > ( storedProcedure ) . FirstOrDefault ( ) ;
306340 }
341+
342+ /// <summary>
343+ /// Executes the specified stored procedure against a database asynchronously
344+ /// and returns the first or default value
345+ /// </summary>
346+ /// <typeparam name="T">Type of the data returned from the stored procedure.</typeparam>
347+ /// <param name="database">The database to execute against.</param>
348+ /// <param name="storedProcedure">The stored procedure to execute.</param>
349+ /// <param name="cancellationToken">The cancellation token.</param>
350+ /// <returns></returns>
351+ public static async Task < T > ExecuteStoredProcedureFirstOrDefaultAsync < T > ( this Database database , object storedProcedure , CancellationToken cancellationToken = default )
352+ {
353+ var executed = await database . ExecuteStoredProcedureAsync < T > ( storedProcedure , cancellationToken ) . ConfigureAwait ( false ) ;
354+
355+ return executed . FirstOrDefault ( ) ;
356+ }
307357#endif
308358
309359 private static void SetOutputParameterValues ( IEnumerable < SqlParameter > sqlParameters , object storedProcedure )
0 commit comments