EntityEntry 类

定义

提供对给定实体的更改跟踪信息和操作的访问。

当使用 API 时,将从方法返回此类的实例 ChangeTracker ,而不是在应用程序代码中直接构造此类的实例。

[System.Diagnostics.DebuggerDisplay("{_internalEntityEntry,nq}")]
public class EntityEntry : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry>
[System.Diagnostics.DebuggerDisplay("{InternalEntry,nq}")]
public class EntityEntry : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry>
[<System.Diagnostics.DebuggerDisplay("{_internalEntityEntry,nq}")>]
type EntityEntry = class
    interface IInfrastructure<InternalEntityEntry>
[<System.Diagnostics.DebuggerDisplay("{InternalEntry,nq}")>]
type EntityEntry = class
    interface IInfrastructure<InternalEntityEntry>
Public Class EntityEntry
Implements IInfrastructure(Of InternalEntityEntry)
继承
EntityEntry
派生
属性
实现
IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry>

构造函数

EntityEntry(InternalEntityEntry)

这是支持 Entity Framework Core 基础结构的内部 API,与公共 Api 的兼容性标准不相同。 在任何版本中,它可能会被更改或删除,而不另行通知。 应特别小心地在代码中直接使用它,并且知道这样做可能会导致应用程序在更新到新的 Entity Framework Core 版本时失败。

属性

Collections

提供对此实体的所有集合导航属性的更改跟踪信息和加载信息的访问。

Context

获取正在跟踪实体的上下文。

CurrentValues

获取此实体的当前属性值。

DebugView

在调试器中展开此属性,以便进入可读的条目。

警告:不要依赖于调试字符串的格式。 它们设计为仅用于调试,并且可能会在两个版本之间随意更改。

Entity

获取由此项跟踪的实体。

InternalEntry

这是支持 Entity Framework Core 基础结构的内部 API,与公共 Api 的兼容性标准不相同。 在任何版本中,它可能会被更改或删除,而不另行通知。 应特别小心地在代码中直接使用它,并且知道这样做可能会导致应用程序在更新到新的 Entity Framework Core 版本时失败。

IsKeySet

获取一个值,该值指示是否已为此实体的键值指定了值。

对于具有存储生成的属性的密钥 (例如,映射到标识列) ,如果任何应用商店生成的属性具有 CLR 默认值,则返回值将为 false。

对于没有任何存储生成的属性的键,返回值将始终为 true,因为任何值都被视为有效的键值。

Members

提供对此实体的所有属性和导航属性的更改跟踪信息和操作的访问。

Metadata

获取有关实体的形状、与其他实体的关系以及如何映射到数据库的元数据。

Navigations

提供对此实体的所有导航属性的更改跟踪信息和操作的访问。

OriginalValues

获取此实体的原始属性值。 原始值是从数据库中检索实体时的属性值。

请注意,当真实的原始属性值不可用时 (例如,实体尚未保存到数据库) 这将默认为此实体的当前属性值。

Properties

为此实体的所有属性提供对更改跟踪信息和操作的访问。

References

提供对此实体的所有引用 ((即非集合) 导航属性)的更改跟踪信息和加载信息的访问。

State

获取或设置在其中跟踪此实体的状态。

此方法仅设置此项表示的单个实体的状态。 它不会更改此项可访问的其他实体的状态。

设置状态时,实体将始终以指定的状态结束。 例如,如果将状态更改为,则 Deleted 会将该实体标记为删除,而不考虑其当前状态。 这不同于调用 Remove(TEntity) 将 (的实体断开连接,而不是将其标记为删除) 如果处于 Added 状态。

方法

Collection(String)

提供对将此实体与其他实体的集合进行关联的集合导航属性的更改跟踪和加载信息的访问。

DetectChanges()

扫描此实体实例,以检测对实例数据所做的任何更改。 DetectChanges() 通常,上下文会自动调用来获取有关单个实体的最新信息,然后再返回更改跟踪信息。 如果已禁用,通常只需调用此方法 AutoDetectChangesEnabled

GetDatabaseValues()

在数据库中查询跟踪实体的值的副本,因为当前它们位于数据库中。 如果在数据库中找不到该实体,则返回 null。

请注意,更改返回的字典中的值将不会更新数据库中的值。

GetDatabaseValuesAsync(CancellationToken)

在数据库中查询跟踪实体的值的副本,因为当前它们位于数据库中。 如果在数据库中找不到该实体,则返回 null。

请注意,更改返回的字典中的值将不会更新数据库中的值。

不支持对同一上下文实例进行多个活动的操作。 在对此上下文调用其他方法之前,请使用 "await" 确保所有异步操作都已完成。

Member(String)

提供对此实体的给定属性或导航属性的更改跟踪信息和操作的访问。

Navigation(String)

提供对此实体的给定导航属性的更改跟踪信息和操作的访问。

Property(String)

提供对此实体的给定属性的更改跟踪信息和操作的访问。

Reference(String)

提供对引用的更改跟踪和加载信息的访问 (即,将此实体与另一实体关联的非集合) 导航属性。

Reload()

从数据库重新加载该实体时会用数据库中的值覆盖任何属性值。

调用此方法后,该实体将处于 Unchanged 状态,除非该实体在数据库中不存在,在这种情况下,实体将为 Detached 。 最后,对 Added 数据库中不存在的实体调用 reload.sql 是一种无操作。 但请注意,添加的实体可能尚未创建其永久键值。

ReloadAsync(CancellationToken)

从数据库重新加载该实体时会用数据库中的值覆盖任何属性值。

调用此方法后,该实体将处于 Unchanged 状态,除非该实体在数据库中不存在,在这种情况下,实体将为 Detached 。 最后,对 Added 数据库中不存在的实体调用 reload.sql 是一种无操作。 但请注意,添加的实体可能尚未创建其永久键值。

显式接口实现

IInfrastructure<InternalEntityEntry>.Instance

这是支持 Entity Framework Core 基础结构的内部 API,与公共 Api 的兼容性标准不相同。 在任何版本中,它可能会被更改或删除,而不另行通知。 应特别小心地在代码中直接使用它,并且知道这样做可能会导致应用程序在更新到新的 Entity Framework Core 版本时失败。

扩展方法

GetInfrastructure<T>(IInfrastructure<T>)

从使用隐藏的属性获取值 IInfrastructure<T>

此方法通常由数据库提供程序 (和其他扩展) 使用。 它通常不在应用程序代码中使用。

IInfrastructure<T> 用于隐藏不应在应用程序代码中使用的属性,但可在数据库提供程序编写的扩展方法中使用。

适用于