EntityFrameworkQueryableExtensions.SingleOrDefaultAsync 方法

定义

重载

SingleOrDefaultAsync<TSource>(IQueryable<TSource>, CancellationToken)

异步返回序列的唯一元素,如果序列为空,则返回默认值;如果序列中有多个元素,此方法将引发异常。

SingleOrDefaultAsync<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>, CancellationToken)

异步返回序列中满足指定条件的唯一元素;如果不存在此类元素,则返回默认值;如果多个元素满足条件,此方法将引发异常。

SingleOrDefaultAsync<TSource>(IQueryable<TSource>, CancellationToken)

异步返回序列的唯一元素,如果序列为空,则返回默认值;如果序列中有多个元素,此方法将引发异常。

public static System.Threading.Tasks.Task<TSource> SingleOrDefaultAsync<TSource> (this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default);
public static System.Threading.Tasks.Task<TSource?> SingleOrDefaultAsync<TSource> (this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default);
static member SingleOrDefaultAsync : System.Linq.IQueryable<'Source> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Source>
<Extension()>
Public Function SingleOrDefaultAsync(Of TSource) (source As IQueryable(Of TSource), Optional cancellationToken As CancellationToken = Nothing) As Task(Of TSource)

类型参数

TSource

source 的元素类型。

参数

source
IQueryable<TSource>

要返回其单个元素的 IQueryable<T>

cancellationToken
CancellationToken

等待 CancellationToken 任务完成时要观察的 。

返回

Task<TSource>

表示异步操作的任务。 任务结果包含输入序列的单个元素,如果 default 序列不包含任何元素,则 ( TSource) 。

例外

source 上声明的默认值为 null

source 包含多个元素。

注解

不支持对同一上下文实例执行多个活动操作。 使用 await 确保在此上下文上调用另一个方法之前已完成所有异步操作。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题

有关详细信息和示例,请参阅 使用 EF Core 查询数据

适用于

SingleOrDefaultAsync<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>, CancellationToken)

异步返回序列中满足指定条件的唯一元素;如果不存在此类元素,则返回默认值;如果多个元素满足条件,此方法将引发异常。

public static System.Threading.Tasks.Task<TSource> SingleOrDefaultAsync<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate, System.Threading.CancellationToken cancellationToken = default);
public static System.Threading.Tasks.Task<TSource?> SingleOrDefaultAsync<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate, System.Threading.CancellationToken cancellationToken = default);
static member SingleOrDefaultAsync : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Source>
<Extension()>
Public Function SingleOrDefaultAsync(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean)), Optional cancellationToken As CancellationToken = Nothing) As Task(Of TSource)

类型参数

TSource

source 的元素类型。

参数

source
IQueryable<TSource>

要返回其单个元素的 IQueryable<T>

predicate
Expression<Func<TSource,Boolean>>

用于测试元素是否满足条件的函数。

cancellationToken
CancellationToken

等待 CancellationToken 任务完成时要观察的 。

返回

Task<TSource>

表示异步操作的任务。 任务结果包含满足 中的 predicate条件的输入序列的单个元素,如果未 default 找到此类元素,则 ( TSource ) 。

例外

sourcepredicatenull

多个元素满足 predicate 中的条件。

注解

不支持对同一上下文实例执行多个活动操作。 使用 await 确保在此上下文上调用另一个方法之前已完成所有异步操作。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题

有关详细信息和示例,请参阅 使用 EF Core 查询数据

适用于