实体框架TypeUsage对象

时间:2011-09-27 18:23:33

标签: c# entity-framework memory-leaks

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

有没有人知道从内存中释放这些TypeUsatge对象的方法?它们看起来是内部的Entity Framework对象,因为我的代码中没有对它们的任何引用。我已经确认我已将上下文对象包装在using块中,并且正在释放内存,但此类型用法不希望消失。

非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

您可能正在查看Entity Framework在其下使用的第一级缓存(更改跟踪器)。要了解更多信息,请查看此信息。如果此处存在内存泄漏,我会感到惊讶,这更可能是这只是正常行为。你看到多少记忆泄漏?

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

希望这有帮助。