实体框架 TypeUsage 对象

Posted

技术标签:

【中文标题】实体框架 TypeUsage 对象【英文标题】:Entity Framework TypeUsage Object 【发布时间】:2011-11-26 07:08:03 【问题描述】:

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

有谁知道从内存中释放这些 TypeUsatge 对象的方法?它们看起来是内部实体框架对象,因为我的代码中没有对它们的任何引用。我已经确认我已经将 context 对象包装在 using 块中,并且正在释放内存,但是这种 Type 用法并不想消失。

您能提供的任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

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

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

希望这会有所帮助。

【讨论】:

以上是关于实体框架 TypeUsage 对象的主要内容,如果未能解决你的问题,请参考以下文章

首先使用实体​​框架代码保存单个实体对象

如何阻止实体框架尝试保存/插入子对象?

是否需要处理实体框架上下文对象

使用实体框架获取对象在对象上返回 null

实体框架 - 连接新添加的 Poco 实体并加载子对象(插入/添加)

实体框架和业务对象