2012-03-17 23 views
0

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

任何人都可以帮助我吗?

 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 
     } 
+0

您需要显示加载记录的代码。事件处理程序什么也没说。 – 2012-03-17 10:47:24

回答

1

它与最大的序列化量有关。 检查web.config文件为本条

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

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

+0

Thx为您提供帮助! ihad已经试过这个但它没有解决任何问题。 – 2012-03-17 22:02:49

+0

@MehdiKylar只是好奇,但你为什么要一次加载所有内容?带Ria的Silverlight支持相对简单的分页方式。 – Silvermind 2012-03-18 10:55:48

+0

;我正在尝试将deographique数据添加到我的图层中,因此我必须立即加载它! – 2012-03-18 11:51:06

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> 
相关问题