Skip to content

Commit e303b8b

Browse files
Update comment + Add Async to FirstOrDefault
1 parent 424d051 commit e303b8b

File tree

1 file changed

+53
-3
lines changed

1 file changed

+53
-3
lines changed

EntityFrameworkExtras.Shared/DatabaseExtensions.cs

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)