QueryableExtensions.SingleOrDefaultAsync<TSource> メソッド (IQueryable<TSource>, CancellationToken)
[このページは、Entity Framework 6 に関するページです。最新バージョンは、'Entity Framework' NuGet パッケージとして入手できます。Entity Framework の詳細については、msdn.com/data/ef を参照してください。]
シーケンスの唯一の要素を非同期に返します。シーケンスが空の場合、既定値を返します。シーケンス内に要素が複数ある場合、このメソッドは例外をスローします。
名前空間: System.Data.Entity
アセンブリ: EntityFramework (EntityFramework.dll 内)
構文
'宣言
<ExtensionAttribute> _
Public Shared Function SingleOrDefaultAsync(Of TSource) ( _
source As IQueryable(Of TSource), _
cancellationToken As CancellationToken _
) As Task(Of TSource)
'使用
Dim source As IQueryable(Of TSource)
Dim cancellationToken As CancellationToken
Dim returnValue As Task(Of TSource)
returnValue = source.SingleOrDefaultAsync(cancellationToken)
public static Task<TSource> SingleOrDefaultAsync<TSource>(
this IQueryable<TSource> source,
CancellationToken cancellationToken
)
[ExtensionAttribute]
public:
generic<typename TSource>
static Task<TSource>^ SingleOrDefaultAsync(
IQueryable<TSource>^ source,
CancellationToken cancellationToken
)
static member SingleOrDefaultAsync :
source:IQueryable<'TSource> *
cancellationToken:CancellationToken -> Task<'TSource>
JScript does not support generic types and methods.
型パラメーター
- TSource
source の要素の型。
パラメーター
- source
型 : System.Linq.IQueryable<TSource>
1 つの要素を返す IQueryable<T>。
- cancellationToken
型 : System.Threading.CancellationToken
タスクの完了を待機しているときに観察する CancellationToken。
戻り値
型 : System.Threading.Tasks.Task<TSource>
非同期操作を表すタスク。タスクの結果には、入力シーケンスの 1 つの要素が示されます。シーケンスに要素が含まれていない場合は default (TSource) が示されます。
使用上の注意
Visual Basic および Visual C# では、このメソッドを、IQueryable<TSource> 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「https://msdn.microsoft.com/ja-jp/library/bb384936(v=vs.113)」または「https://msdn.microsoft.com/ja-jp/library/bb383977(v=vs.113)」を参照してください。
例外
例外 | 状態 |
---|---|
ArgumentNullException | source が null です。 |
InvalidOperationException | source は IDbAsyncQueryProvider を実装しません。 |
InvalidOperationException | source には複数の要素があります。 |
解説
同じコンテキスト インスタンスに対する複数のアクティブ操作はサポートされません。 このコンテキストで別のメソッドを呼び出す前に、非同期操作が完了したことを確認するために await を使用します。