c# - Entity Framework TypeUsage 对象

标签 c# entity-framework memory-leaks

我正在我的应用程序上运行内存分析器以查找可能的内存泄漏。 System.Data.Metadata.Edm.TypeUsage 对象的数量一直在增长,看起来这可能是我的内存问题的原因。

有谁知道从内存中释放这些 TypeUsatge 对象的方法吗?它们看起来像是内部 Entity Framework 对象,因为我的代码中没有对它们的任何引用。我已确认我已将上下文对象包装在一个 using block 中,并且正在释放内存,但这种 Type 用法并不想消失。

如果您能提供任何帮助,我们将不胜感激。

最佳答案

您可能正在查看 Entity Framework 在底层使用的一级缓存(Change Tracker)。要了解更多信息,请查看此内容。如果这里有内存泄漏,我会感到惊讶,这很可能只是正常行为。您看到有多少内存泄漏?

要释放内存,请尝试使用其他合并选项(如 NoTracking)。默认值为 AppendOnly,它将保留您可能再次使用的内存中的类型。 NoTracking 合并选项每次都会进入数据库并且不会在内存中保留任何内容。

希望这对您有所帮助。

关于c# - Entity Framework TypeUsage 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7573897/

相关文章:

c# - 如何减少对通用缓存存储库中的读者的锁定?

entity-framework - Entity Framework 对象物化和依赖注入(inject)

asp.net - 如果我使用 InRequestScope(),在哪里执行 DBContext.SaveChanges()

javascript - jQuery load() 方法内存泄漏?

c# - 使用 x509 证书签署 SAML 断言时出现“格式错误的引用元素”

c# - .Net 4.7项目可以引用.Net Core 2.0类库吗?

linux - 如何制定自由策略?

c# - 重型 WPF 控件如何以一种确定的方式使用一个空闲内存?

c# - 快速比较器?

entity-framework - 我对 POCO + Entity Framework v4 的理解正确吗?