EF Core Context不包含添加实体的更改



我有。net Core 3.1 Web API与EF Core 3.1。我有DbContext与作用域生命周期。

我有两个服务,我在构造函数中注入DbContext。当我更新Service1中的现有实体(而不是调用SaveChanges,只是context. update)时,我可以在Service2的上下文中看到一个更新的实体(当然是在一个请求期间)。

,

当我在Service1中创建一个新实体时(而不是调用SaveChanges,只是context. add),那么这个实体在Service2的上下文中是缺席的。

为什么会发生这种情况,是否有可能在我注入上下文的任何服务中添加实体?

当您发出数据库查询(不指定AsNoTracking选项)时,上下文将丢弃它已经跟踪的任何实体的加载数据,并返回现有实例。这就是为什么您的服务会看到尚未保存的实体的更新详细信息。

但是,由于数据库查询不会返回已添加但尚未保存的实体的任何详细信息,因此它们不会包含在查询结果中。

如果要查看挂起的更改,则需要查询DbSet<TEntity>.Local集合。

EF Core的变更跟踪

相关内容

  • 没有找到相关文章

最新更新