[英]EF Core Context does not contain changes for added entities
我有 .NET Core 3.1 Web API 和 EF Core 3.1。 我有带 Scoped 生命周期的 DbContext。
我有两个服务,我在构造函数中注入 DbContext。 当我更新 Service1 中的现有实体(而不是调用 SaveChanges,仅调用 context.Update)时,我可以在 Service2 的上下文中看到一个更新的实体(当然是在一个请求期间)。
但
当我在 Service1 中创建一个新实体(而不是调用 SaveChanges,只是调用 context.Add)时,该实体在 Service2 的上下文中不存在。
为什么会发生这种情况,是否可以修复它以在我注入上下文的任何服务中添加实体?
当您发出数据库查询(未指定AsNoTracking
选项)时,上下文将丢弃它已经跟踪的任何实体的加载数据,并返回现有实例。 这就是为什么您的服务会看到尚未保存的实体的更新详细信息。
但是,由于数据库查询不会返回已添加但尚未保存的实体的任何详细信息,因此它们不会包含在查询结果中。
如果要查看挂起的更改,则需要改为查询DbSet<TEntity>.Local
集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.