共用方式為


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) 。

例外狀況

sourcenull

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 查詢資料

適用於