QueryableExtensions.SingleOrDefaultAsync<TSource> (Método) (IQueryable<TSource>, Expression<Func<TSource, Boolean>>, CancellationToken)
[Esta página es específica de la versión 6 de Entity Framework. La versión más reciente está disponible como el paquete NuGet de Entity Framework. Para más información sobre Entity Framework, consulte msdn.com/es-ES/data/ef].
Devuelve de forma asincrónica el único elemento de una secuencia que cumple una condición especificada o un valor predeterminado si ese elemento no existe; este método produce una excepción si varios elementos cumplen la condición.
Espacio de nombres: System.Data.Entity
Ensamblado: EntityFramework (en EntityFramework.dll)
Sintaxis
'Declaración
<ExtensionAttribute> _
<SuppressMessageAttribute("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")> _
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
Public Shared Function SingleOrDefaultAsync(Of TSource) ( _
source As IQueryable(Of TSource), _
predicate As Expression(Of Func(Of TSource, Boolean)), _
cancellationToken As CancellationToken _
) As Task(Of TSource)
'Uso
Dim source As IQueryable(Of TSource)
Dim predicate As Expression(Of Func(Of TSource, Boolean))
Dim cancellationToken As CancellationToken
Dim returnValue As Task(Of TSource)
returnValue = source.SingleOrDefaultAsync(predicate, _
cancellationToken)
[SuppressMessageAttribute("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")]
[SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public static Task<TSource> SingleOrDefaultAsync<TSource>(
this IQueryable<TSource> source,
Expression<Func<TSource, bool>> predicate,
CancellationToken cancellationToken
)
[ExtensionAttribute]
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1011:ConsiderPassingBaseTypesAsParameters")]
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1006:DoNotNestGenericTypesInMemberSignatures")]
public:
generic<typename TSource>
static Task<TSource>^ SingleOrDefaultAsync(
IQueryable<TSource>^ source,
Expression<Func<TSource, bool>^>^ predicate,
CancellationToken cancellationToken
)
[<SuppressMessageAttribute("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")>]
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
static member SingleOrDefaultAsync :
source:IQueryable<'TSource> *
predicate:Expression<Func<'TSource, bool>> *
cancellationToken:CancellationToken -> Task<'TSource>
JScript does not support generic types and methods.
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
Tipo: System.Linq.IQueryable<TSource>
IQueryable<T> cuyo único elemento se va a devolver.
- predicate
Tipo: System.Linq.Expressions.Expression<Func<TSource, Boolean>>
Función para probar si un elemento cumple una condición.
- cancellationToken
Tipo: System.Threading.CancellationToken
CancellationToken que se va a observar mientras se espera que se complete la tarea.
Valor devuelto
Tipo: System.Threading.Tasks.Task<TSource>
Tarea que representa la operación asincrónica.El resultado de la tarea contiene el único elemento de la secuencia de entrada que cumple la condición especificada en predicate o default (TSource) si no se encuentra ese elemento.
Nota sobre el uso
En Visual Basic y C#, se puede llamar a este método como a un método de instancia en cualquier objeto de tipo IQueryable<TSource>. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea https://msdn.microsoft.com/es-es/library/bb384936(v=vs.113) o https://msdn.microsoft.com/es-es/library/bb383977(v=vs.113).
Excepciones
Excepción | Condición |
---|---|
ArgumentNullException | El valor de source o predicate es null. |
InvalidOperationException | source no implementa IDbAsyncQueryProvider. |
Comentarios
No se admiten varias operaciones activas en la misma instancia de contexto. Use 'await' para asegurarse de que se han completado todas las operaciones asincrónicas antes de llamar a otro método en este contexto.