我有一个域服务,派生自LinqToEntitiesDomainService<FOOEntities>
它有一个方法,IQueryable<Bar>GetBar()。GetBar返回实体模型的LINQ查询。LINQ在LINQPad中运行良好。
在Silverlight的XAML中,我有一个ListBox,它的ItemsSource指向同一个XAML文件中定义的DomainDataSource,名为dsGetBar。dsGetBar上的AutoLoad=“True”。dsGetBar的LoadedData事件有一个空处理程序。
我在VS2010中运行这个。当我连接到两个WebDev.WebServer服务器处理和浏览器实例,然后加载页面,我在GetBar()和LoadedData处理程序中找到了断点。由此我乐观地推断,该服务正在被客户调用。
在GetBar()中,我调用查询结果计数,返回24000并更改。我的方法返回很好,没有抛出任何异常。
所以问题是:
在加载数据中,dsGetBar.Data.Count计数== 0. 列表框中不会出现任何项目。万一我的ListBox项模板坏了,我就用DataGrid代替它。同样的交易。
数据应该在哪里?如果没有,在哪里?当您想为控件提供项源时,ItemsSource是正确的属性吗?
是否有任何已知的方法来找出服务和客户机之间发生了什么?
更新
查询方法成功完成后,服务返回504(“ReadResponse()failed:服务器没有为此请求返回响应”)。
更新
发生504是因为记录数超过65535。只有24000多个通过了LINQ中的where子句(如果没有where子句,则为74000个),因此这甚至不是对可以通过连线的内容的限制。荒谬的。这个数字很微小。
更新
…或者在需要用XAML显示大量记录时应该使用寻呼机。