DbContext.FindAsync 方法

定义

重载

FindAsync(Type, Object[], CancellationToken)

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

FindAsync(Type, Object[])

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

FindAsync<TEntity>(Object[])

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

FindAsync<TEntity>(Object[], CancellationToken)

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

FindAsync(Type, Object[], CancellationToken)

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

public virtual System.Threading.Tasks.Task<object> FindAsync (Type entityType, object[] keyValues, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.ValueTask<object> FindAsync (Type entityType, object[] keyValues, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.ValueTask<object?> FindAsync (Type entityType, object?[]? keyValues, System.Threading.CancellationToken cancellationToken);
abstract member FindAsync : Type * obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.Task<obj>
override this.FindAsync : Type * obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.Task<obj>
abstract member FindAsync : Type * obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<obj>
override this.FindAsync : Type * obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<obj>
Public Overridable Function FindAsync (entityType As Type, keyValues As Object(), cancellationToken As CancellationToken) As Task(Of Object)
Public Overridable Function FindAsync (entityType As Type, keyValues As Object(), cancellationToken As CancellationToken) As ValueTask(Of Object)

参数

entityType
Type

要查找的实体的类型。

keyValues
Object[]

要查找的实体的主键值。

cancellationToken
CancellationToken

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

返回

找到的实体,或 null

例外

注解

Entity Framework Core 不支持在同一 DbContext 实例上运行多个并行操作。 这包括异步查询的并行执行以及从多个线程进行的任何显式并发使用。 因此,请始终立即等待异步调用,或者对并行执行的操作使用单独的 DbContext 实例。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题

有关详细信息和示例,请参阅 使用 Find 和 FindAsync

适用于

FindAsync(Type, Object[])

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

public virtual System.Threading.Tasks.Task<object> FindAsync (Type entityType, params object[] keyValues);
public virtual System.Threading.Tasks.ValueTask<object> FindAsync (Type entityType, params object[] keyValues);
public virtual System.Threading.Tasks.ValueTask<object?> FindAsync (Type entityType, params object?[]? keyValues);
abstract member FindAsync : Type * obj[] -> System.Threading.Tasks.Task<obj>
override this.FindAsync : Type * obj[] -> System.Threading.Tasks.Task<obj>
abstract member FindAsync : Type * obj[] -> System.Threading.Tasks.ValueTask<obj>
override this.FindAsync : Type * obj[] -> System.Threading.Tasks.ValueTask<obj>
Public Overridable Function FindAsync (entityType As Type, ParamArray keyValues As Object()) As Task(Of Object)
Public Overridable Function FindAsync (entityType As Type, ParamArray keyValues As Object()) As ValueTask(Of Object)

参数

entityType
Type

要查找的实体的类型。

keyValues
Object[]

要查找的实体的主键值。

返回

找到的实体,或 null

注解

Entity Framework Core 不支持在同一 DbContext 实例上运行多个并行操作。 这包括异步查询的并行执行以及从多个线程进行的任何显式并发使用。 因此,请始终立即等待异步调用,或者对并行执行的操作使用单独的 DbContext 实例。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题

有关详细信息和示例,请参阅 使用 Find 和 FindAsync

适用于

FindAsync<TEntity>(Object[])

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

public virtual System.Threading.Tasks.Task<TEntity> FindAsync<TEntity> (params object[] keyValues) where TEntity : class;
public virtual System.Threading.Tasks.ValueTask<TEntity> FindAsync<TEntity> (params object[] keyValues) where TEntity : class;
public virtual System.Threading.Tasks.ValueTask<TEntity?> FindAsync<TEntity> (params object?[]? keyValues) where TEntity : class;
abstract member FindAsync : obj[] -> System.Threading.Tasks.Task<'Entity (requires 'Entity : null)> (requires 'Entity : null)
override this.FindAsync : obj[] -> System.Threading.Tasks.Task<'Entity (requires 'Entity : null)> (requires 'Entity : null)
abstract member FindAsync : obj[] -> System.Threading.Tasks.ValueTask<'Entity (requires 'Entity : null)> (requires 'Entity : null)
override this.FindAsync : obj[] -> System.Threading.Tasks.ValueTask<'Entity (requires 'Entity : null)> (requires 'Entity : null)
Public Overridable Function FindAsync(Of TEntity As Class) (ParamArray keyValues As Object()) As Task(Of TEntity)
Public Overridable Function FindAsync(Of TEntity As Class) (ParamArray keyValues As Object()) As ValueTask(Of TEntity)

类型参数

TEntity

要查找的实体的类型。

参数

keyValues
Object[]

要查找的实体的主键值。

返回

Task<TEntity>
ValueTask<TEntity>

找到的实体,或 null

注解

Entity Framework Core 不支持在同一 DbContext 实例上运行多个并行操作。 这包括异步查询的并行执行以及从多个线程进行的任何显式并发使用。 因此,请始终立即等待异步调用,或者对并行执行的操作使用单独的 DbContext 实例。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题

有关详细信息和示例,请参阅 使用 Find 和 FindAsync

适用于

FindAsync<TEntity>(Object[], CancellationToken)

查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而无需向数据库发出请求。 否则,对数据库查询具有给定主键值的实体,如果找到此实体,则会附加到上下文并返回。 如果未找到实体,则返回 null。

public virtual System.Threading.Tasks.Task<TEntity> FindAsync<TEntity> (object[] keyValues, System.Threading.CancellationToken cancellationToken) where TEntity : class;
public virtual System.Threading.Tasks.ValueTask<TEntity> FindAsync<TEntity> (object[] keyValues, System.Threading.CancellationToken cancellationToken) where TEntity : class;
public virtual System.Threading.Tasks.ValueTask<TEntity?> FindAsync<TEntity> (object?[]? keyValues, System.Threading.CancellationToken cancellationToken) where TEntity : class;
abstract member FindAsync : obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Entity (requires 'Entity : null)> (requires 'Entity : null)
override this.FindAsync : obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Entity (requires 'Entity : null)> (requires 'Entity : null)
abstract member FindAsync : obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<'Entity (requires 'Entity : null)> (requires 'Entity : null)
override this.FindAsync : obj[] * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<'Entity (requires 'Entity : null)> (requires 'Entity : null)
Public Overridable Function FindAsync(Of TEntity As Class) (keyValues As Object(), cancellationToken As CancellationToken) As Task(Of TEntity)
Public Overridable Function FindAsync(Of TEntity As Class) (keyValues As Object(), cancellationToken As CancellationToken) As ValueTask(Of TEntity)

类型参数

TEntity

要查找的实体的类型。

参数

keyValues
Object[]

要查找的实体的主键值。

cancellationToken
CancellationToken

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

返回

Task<TEntity>
ValueTask<TEntity>

找到的实体,或 null

例外

注解

Entity Framework Core 不支持在同一 DbContext 实例上运行多个并行操作。 这包括异步查询的并行执行以及从多个线程进行的任何显式并发使用。 因此,请始终立即等待异步调用,或者对并行执行的操作使用单独的 DbContext 实例。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题

有关详细信息和示例,请参阅 使用 Find 和 FindAsync

适用于