如何加载具有大量记录的silverlight实体?

时间:2012-03-17 09:30:14

标签: sql-server entity-framework silverlight

我的SQL Server数据库中有一个包含38000条记录的大表!在我的Silverlight应用程序中加载此表时,它显示已加载0条记录。当我用较少的记录加载相同的表(例如1000)时,实体加载了所有记录!

有人能帮帮我吗?

      loadhabitaion = this.friendsContext.Load(this.friendsContext.GetHyd_poliQuery());
      loadhabitaion.Completed += new EventHandler(loadhabitaion_Completed);
      void loadhabitaion_Completed(object sender, EventArgs e)

         {

        MessageBox.Show(loadhabitaion.Entities.Count().ToString());
          //it returns 0
         }

2 个答案:

答案 0 :(得分:1)

它与最大量的序列化有关。 检查本节的Web.config文件

<behaviors>
  <serviceBehaviors>
    <dataContractSerializer maxItemsInObjectGraph="1310720"/>

请参阅http://msdn.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.maxitemsinobjectgraph.aspx

答案 1 :(得分:1)

更改配置文件并设置<dataContractSerializer maxItemsInObjectGraph="2147483647"/>,如下所示。

这解决了我的问题,它也将解决你的问题。

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name="">
                <serviceMetadata httpGetEnabled="true" />
              <!--Added the next line so silverlight could recieve large data chunks-->
              <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>