C# 如何解决实体框架中的内存不足异常错误?

C# 如何解决实体框架中的内存不足异常错误?,c#,.net,asp.net,visual-studio-2008,entity-framework,C#,.net,Asp.net,Visual Studio 2008,Entity Framework,以下代码给出了我的Rehber数据的全部数据。但如果我想通过Gridview显示网页,请向我发送内存不足异常错误 GenoTip.BAL: 但我重新安排了我的gridview发送我内存不足异常!!!!我需要这个安排来展示德塔 <asp:GridView ID="gwRehber" runat="server"> <Columns> <%-- <asp:TemplateField> <Item

以下代码给出了我的Rehber数据的全部数据。但如果我想通过Gridview显示网页,请向我发送内存不足异常错误

GenoTip.BAL: 但我重新安排了我的gridview发送我内存不足异常!!!!我需要这个安排来展示德塔

 <asp:GridView ID="gwRehber" runat="server">
       <Columns>
      <%-- <asp:TemplateField>
       <ItemTemplate>
        <asp:Button runat="server" ID="btnID" CommandName="select"  CommandArgument='<%# Eval("ID") %>'  Text="Seç" />
       </ItemTemplate>

       </asp:TemplateField>--%>
       <asp:BoundField DataField="Ad" HeaderText="Ad" />
       <asp:BoundField DataField="BireyID" HeaderText="BireyID" Visible="false" />
       <asp:BoundField DataField="Degistiren" HeaderText="Değiştiren" />
        <asp:BoundField DataField="EklemeTarihi" HeaderText="EklemeTarihi" />
       <asp:BoundField DataField="DegistirmeTarihi" HeaderText="Değiştirme Tarihi" Visible="false" />
       <asp:BoundField DataField="Ekleyen" HeaderText="Ekleyen" />
        <asp:BoundField DataField="ID" HeaderText="ID" Visible="false" />
       <asp:BoundField DataField="Imza" HeaderText="Imza" />
        <asp:BoundField DataField="KurumID" HeaderText="KurumID" Visible="false" />
       </Columns>
       </asp:GridView>

--%>
错误详细信息:

[OutOfMemoryException:'System.OutOfMemoryException'türündeözel durum oluşturuldu.] System.String.GetStringForStringBuilder(字符串值,Int32 startIndex,Int32长度,Int32容量)+29 System.Convert.ToBase64String(字节[]inArray,Int32偏移量,Int32长度,Base64格式选项)+146 System.Web.UI.ObjectStateFormatter.Serialize(对象状态图)+183 System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Serialize(对象状态)+4 System.Web.UI.Util.SerializeWithAssert(IStateFormatter格式化程序,对象状态图)+37 System.Web.UI.HiddenFieldPageStatePersister.Save()+79 System.Web.UI.Page.SavePageStateToPersistenceMedium(对象状态)+105 System.Web.UI.Page.SaveAllState()+236 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+1099
所以看起来问题是你们在国家投入太多;这很可能意味着以下其中一项(或两项):

  • 你读的行太多了
  • 序列化程序正在遍历(可能是延迟加载?)属性,导致加载/序列化的数据超过预期
为了解决这个问题,我建议在做任何可能使数据进入状态的事情之前,先投影到一个简单的DTO模型(这样您就可以确切地知道您正在序列化哪些数据),并仔细查看您正在处理的行数(适当地使用
Take
Where

 <asp:GridView ID="gwRehber" runat="server">

       </asp:GridView>
using GenoTip.BAL;


namespace GenoTip.Web.ContentPages.Satis
{
    public partial class Satis : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                gwRehber.DataSource = SatisServices.GetAllDataOfRehber();
                gwRehber.DataBind();
                //gwRehber.Columns[0].Visible = false;
            }
        }
    }
}
 <asp:GridView ID="gwRehber" runat="server">
       <Columns>
      <%-- <asp:TemplateField>
       <ItemTemplate>
        <asp:Button runat="server" ID="btnID" CommandName="select"  CommandArgument='<%# Eval("ID") %>'  Text="Seç" />
       </ItemTemplate>

       </asp:TemplateField>--%>
       <asp:BoundField DataField="Ad" HeaderText="Ad" />
       <asp:BoundField DataField="BireyID" HeaderText="BireyID" Visible="false" />
       <asp:BoundField DataField="Degistiren" HeaderText="Değiştiren" />
        <asp:BoundField DataField="EklemeTarihi" HeaderText="EklemeTarihi" />
       <asp:BoundField DataField="DegistirmeTarihi" HeaderText="Değiştirme Tarihi" Visible="false" />
       <asp:BoundField DataField="Ekleyen" HeaderText="Ekleyen" />
        <asp:BoundField DataField="ID" HeaderText="ID" Visible="false" />
       <asp:BoundField DataField="Imza" HeaderText="Imza" />
        <asp:BoundField DataField="KurumID" HeaderText="KurumID" Visible="false" />
       </Columns>
       </asp:GridView>