加载实体时Entity Framework会生成多少个数据副本?

时间:2013-10-02 07:56:54

标签: .net performance entity-framework entity-framework-4.1 blob

我已经接管了一个Entity Framework 4.1项目,其中已经选择将大型BLOB存储在数据库中(最大200MB)。这些blob通过LINQ to Entities加载到内存中。当然,这对绩效产生了相当不利的影响......

它也让我有机会看看EF内存消耗,现在我看到当我读取一个包含50MB blob的对象时,内存增加了150MB。我知道有一个'当前值'和'原始值'集合,但显然有第三个副本。这是什么?

1 个答案:

答案 0 :(得分:1)

默认情况下,上下文应保留原始值和当前值的副本。

对于只读使用,您应该能够通过禁用更改跟踪将内存占用减少50M。

第三个副本可能是blob的一些非托管副本,但肯定会知道procdump。