You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core中已跟踪实体在后续数据获取时会被自动关联吗?

EF Core 7 跟踪实体复用行为说明

当你遇到这种场景时,EF Core会识别到已跟踪的User对象并直接复用,不会抛出异常,具体逻辑如下:

  • EF Core的DbContext会维护一个实体跟踪缓存,以实体主键作为唯一标识。当执行包含导航属性的查询时,EF Core会先检查缓存中是否存在对应主键的已跟踪实体。
  • 由于中间件加载的User已经处于被跟踪的UNCHANGED状态,且与EntityA的创建者是同一主键的实体,EF Core会直接将这个已存在的User实例赋值给EntityA的导航属性,不会从数据库重新创建新的User对象。
  • 这种行为是EF Core默认的实体跟踪机制,核心目的是保证同一DbContext上下文内,不会出现主键相同的多个实体实例,维持实体的唯一性。

内容的提问来源于stack exchange,提问作者Jared Napier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 21:22:01