我在我的应用程序上运行内存分析器以查找可能的内存泄漏。 System.Data.Metadata.Edm.TypeUsage对象的数量一直在增长,看起来这可能是我的内存问题的原因。
有没有人知道从内存中释放这些TypeUsatge对象的方法?它们看起来是内部的Entity Framework对象,因为我的代码中没有对它们的任何引用。我已经确认我已将上下文对象包装在using块中,并且正在释放内存,但此类型用法不希望消失。
非常感谢您提供的任何帮助。
答案 0 :(得分:0)
您可能正在查看Entity Framework在其下使用的第一级缓存(更改跟踪器)。要了解更多信息,请查看此信息。如果此处存在内存泄漏,我会感到惊讶,这更可能是这只是正常行为。你看到多少记忆泄漏?
要释放内存,请尝试使用其他合并选项(如NoTracking)。默认值为AppendOnly,它将保留内存中可能再次使用的类型。 NoTracking合并选项每次都会进入数据库,并且不会在内存中保留任何内容。
希望这有帮助。