0

在我的 Web 应用程序中,我想在数据网格中显示一个表数据,因为我在执行时正在使用 Entity Framework 4.0,但我遇到了内存不足的异常。

ASP.NET 数据网格中是否有任何限制。我正在使用 Oracle 数据库。

下面是我的代码

        Entities obj = new Entities();
        GridView1.DataSource = obj.EQUIPMENTs.ToList();
        //Here i am getting exception
        GridView1.DataBind();
4

1 回答 1

2

你必须检查你的内存消耗。使用ProcessExplorer轻松检查。如果您受到限制,请检查您加载到集合中的数据量。

请记住,CLR除了分配RAM的限制之外,还有LIst<T>大小限制,我明白了obj.EQUIPMENTs.ToList()。对于List<T>,限制是2GB(即使在 x64 上)。

如果其中之一为真(或两者兼有),则解决方案是重新架构您的代码。

例子:

您的用户几乎不可能一次需要所有数据量,也许您可​​以在不同的页面/标签/任何东西之间分割它......

如果您需要一些统计信息、一些聚合或一些计算,请在服务器上进行并仅传输结果。

于 2013-04-09T07:33:38.013 回答