DbContext.Attach 方法

定义

重载

Attach(Object)

默认使用 Unchanged 状态开始跟踪给定实体和可从给定实体访问的条目,但有关将使用不同的状态的情况,请参阅下文。

Attach<TEntity>(TEntity)

默认使用 Unchanged 状态开始跟踪给定实体和可从给定实体访问的条目,但有关将使用不同的状态的情况,请参阅下文。

Attach(Object)

默认使用 Unchanged 状态开始跟踪给定实体和可从给定实体访问的条目,但有关将使用不同的状态的情况,请参阅下文。

public virtual Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry Attach (object entity);
abstract member Attach : obj -> Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry
override this.Attach : obj -> Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry
Public Overridable Function Attach (entity As Object) As EntityEntry

参数

entity
Object

要附加的实体。

返回

EntityEntry实体的 。 条目提供对实体的更改跟踪信息和操作的访问。

注解

通常,在调用 之前 SaveChanges() 不会执行数据库交互。

将执行导航属性的递归搜索,以查找上下文尚未跟踪的可访问实体。 上下文将跟踪找到的所有实体。

对于具有生成键的实体类型,如果实体设置了其主键值,则将在 状态中 Unchanged 跟踪它。 如果未设置主键值,则将在 状态中 Added 跟踪它。 这有助于确保仅插入新实体。 如果主键属性设置为属性类型的 CLR 默认值以外的任何值,则认为实体设置了主键值。

对于没有生成键的实体类型,状态集始终 Unchanged为 。

使用 State 仅设置单个实体的状态。

有关详细信息和示例,请参阅 EF Core 更改跟踪

适用于

Attach<TEntity>(TEntity)

默认使用 Unchanged 状态开始跟踪给定实体和可从给定实体访问的条目,但有关将使用不同的状态的情况,请参阅下文。

public virtual Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity> Attach<TEntity> (TEntity entity) where TEntity : class;
abstract member Attach : 'Entity -> Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<'Entity (requires 'Entity : null)> (requires 'Entity : null)
override this.Attach : 'Entity -> Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<'Entity (requires 'Entity : null)> (requires 'Entity : null)
Public Overridable Function Attach(Of TEntity As Class) (entity As TEntity) As EntityEntry(Of TEntity)

类型参数

TEntity

实体的类型。

参数

entity
TEntity

要附加的实体。

返回

EntityEntry<TEntity>实体的 。 条目提供对实体的更改跟踪信息和操作的访问。

注解

通常,在调用 之前 SaveChanges() 不会执行数据库交互。

将执行导航属性的递归搜索,以查找上下文尚未跟踪的可访问实体。 上下文将跟踪找到的所有实体。

对于具有生成键的实体类型,如果实体设置了其主键值,则将在 状态中 Unchanged 跟踪它。 如果未设置主键值,则将在 状态中 Added 跟踪它。 这有助于确保仅插入新实体。 如果主键属性设置为属性类型的 CLR 默认值以外的任何值,则认为实体设置了主键值。

对于没有生成键的实体类型,状态集始终 Unchanged为 。

使用 State 仅设置单个实体的状态。

有关详细信息和示例,请参阅 EF Core 更改跟踪

适用于