Share via


IIdentityResolutionInterceptor 接口

定义

允许在 开始跟踪新实体实例时 DbContext 截获标识解析冲突。

public interface IIdentityResolutionInterceptor : Microsoft.EntityFrameworkCore.Diagnostics.IInterceptor
type IIdentityResolutionInterceptor = interface
    interface IInterceptor
Public Interface IIdentityResolutionInterceptor
Implements IInterceptor
派生
实现

注解

DbContext只能跟踪具有任何给定主键值的一个实体实例。 这意味着,必须将具有相同键值的实体的多个实例解析为单个实例。 此类型的侦听器可用于执行此操作。 它与现有跟踪实例和新实例一起调用,并且必须将新实例中的任何属性值和关系更改应用到现有实例中。 然后,将丢弃新实例。

使用 AddInterceptors(IInterceptor[]) 注册应用程序侦听器。

扩展还可以在内部服务提供程序中注册侦听器。 如果同时找到了注入侦听器和应用程序侦听器,则注入的侦听器将按照从服务提供程序解析的顺序运行,然后应用程序侦听器将最后运行。

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

方法

UpdateTrackedInstance(IdentityResolutionInterceptionData, EntityEntry, Object)

当 尝试使用与已跟踪实例相同的主键值跟踪实体的新实例时 DbContext 调用。 此方法必须将新实例中的任何属性值和关系更改应用于现有实例。 然后,将丢弃新实例。

适用于