DbContext.FindAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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[]
要查找的实体的主键值。
返回
找到的实体,或 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 任务完成时要观察的 。
返回
找到的实体,或 null
。
例外
注解
Entity Framework Core 不支持在同一 DbContext 实例上运行多个并行操作。 这包括异步查询的并行执行以及从多个线程进行的任何显式并发使用。 因此,请始终立即等待异步调用,或者对并行执行的操作使用单独的 DbContext 实例。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题 。
有关详细信息和示例,请参阅 使用 Find 和 FindAsync 。