Beispiel #1
0
 /// <summary>
 /// Returns the only element of a sequence that satisfies a specified condition or
 /// a default value if no such element exists; this method throws an exception if
 /// more than one element satisfies the condition
 /// </summary>
 /// <typeparam name="TSource"></typeparam>
 /// <param name="source">A sequence to return a single element from</param>
 /// <param name="predicate">A function to test an element for a condition</param>
 /// <returns>
 /// The single element of the input sequence that satisfies the condition in predicate,
 /// or default(TSource) if no such element is found
 /// </returns>
 public static Task <TSource> SingleOrDefaultAsync <TSource>(this IQueryable <TSource> source,
                                                             Expression <Func <TSource, bool> > predicate = null)
 {
     return(predicate == null?AsyncExtensions.SingleOrDefaultAsync(source) : AsyncExtensions.SingleOrDefaultAsync(source, predicate));
 }
Beispiel #2
0
 /// <summary>
 /// Asynchronously loads first record from query.
 /// Returns <c>default(TSource)</c>, if query doesn't return any records.
 /// Throws exception, if query returns more than one record.
 /// </summary>
 /// <typeparam name="TSource">Query element type.</typeparam>
 /// <param name="source">Source query.</param>
 /// <param name="token">Optional asynchronous operation cancellation token.</param>
 /// <returns>First record from query results or <c>default(TSource)</c> for empty resultset.</returns>
 public static Task <TSource> SingleOrDefaultAsyncLinqToDB <TSource>(
     this IQueryable <TSource> source,
     CancellationToken token = default)
 => AsyncExtensions.SingleOrDefaultAsync(source.ToLinqToDB(), token);
Beispiel #3
0
 /// <inheritdoc cref="AsyncExtensions.SingleOrDefaultAsync{TSource}(IQueryable{TSource}, Expression{Func{TSource, bool}}, CancellationToken)"/>
 public static Task <TSource> SingleOrDefaultAsyncLinqToDB <TSource>(
     this IQueryable <TSource> source,
     Expression <Func <TSource, bool> > predicate,
     CancellationToken token = default)
 => AsyncExtensions.SingleOrDefaultAsync(source.ToLinqToDB(), predicate, token);