gpt4 book ai didi

entity-framework - 从 EF DbContext 中驱逐项目

转载 作者:行者123 更新时间:2023-12-04 05:24:09 25 4
gpt4 key购买 nike

在我的项目中,我使用的是 EF Code First 4.3。有时,我必须调用一个执行繁重操作的存储过程,并且该操作会修改一些实体,但是由于 EF DbContext 标识映射,除非我创建一个新的 DbContext,否则我看不到更改。

有没有办法在不重新创建 DbContext 的情况下做到这一点?我通过依赖注入(inject)得到它,我不想打破它,因为它非常方便。

最佳答案

我认为您无法清除缓存,但您可以强制上下文重新加载特定实体。

重新加载单个实体:

context.Entry(entity).Reload();

重新加载特定类型的所有实体:
foreach (DbEntityEntry<T> entry in context.ChangeTracker.Entries<T>())
{
entry.Reload();
}

重新加载所有实体:
foreach (DbEntityEntry entry in context.ChangeTracker.Entries())
{
entry.Reload();
}

关于entity-framework - 从 EF DbContext 中驱逐项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com