WCF返回TotalCount -1但是有实体,如何?

时间:2012-05-31 13:01:56

标签: wcf silverlight wcf-ria-services

如下所示,有一个小提琴日志。它是一个WCF结果,并说TotalCount是     -1 (< a:TotalCount> -1< / a:TotalCount>)

但有实体归还。这是什么意思?

注意:当我传递参数时取N,然后它说TotalCount是2.但对于这个Query,没有限制取0或其他。只是存在一个排序。

<GetAppointmentsBySearchResponse xmlns="http://tempuri.org/">
<GetAppointmentsBySearchResult xmlns:a="DomainServices" xmlns:i="http://www.w3.or /2001/XMLSchema-instance">
<a:TotalCount>-1</a:TotalCount>
<a:RootResults xmlns:b="http://schemas.datacontract.org/2004/07/AHBSBus.Web.DB">
 <b:APT_APPOINTMENT>
<b:APPOINTMENTDATE>2012-05-31T09:30:00</b:APPOINTMENTDATE>
<b:APPOINTMENTENDDATE>2012-05-31T09:45:00</b:APPOINTMENTENDDATE>
<b:APPOINTMENTSTATUS>46814e8a-30ad-4648-a98d-d0134f8eccc4</b:APPOINTMENTSTATUS>
<b:APPOINTMENTTYPE>e4b7c7c5-83f5-4f0c-8e47-5f04d41d9f68</b:APPOINTMENTTYPE>
<b:ARRIVALDATE i:nil="true">
</b:ARRIVALDATE>
<b:ARRIVALNO i:nil="true">
</b:ARRIVALNO>
<b:ARRIVALSTATUS i:nil="true">
</b:ARRIVALSTATUS>
<b:DEPARTUREDATE i:nil="true">
</b:DEPARTUREDATE>
<b:DOCTORID>20376fd9-2411-46c2-8463-72fb995de038</b:DOCTORID>
<b:ENTRYDATE>2012-05-31T13:52:46.617</b:ENTRYDATE>
<b:ENTRYUSERID i:nil="true">
</b:ENTRYUSERID>
<b:ID>0533cb98-618b-4af0-9227-fd14920501e0</b:ID>
<b:ISACTIVE>true</b:ISACTIVE>
<b:ISCLOSED>false</b:ISCLOSED>
<b:NOTE>ok</b:NOTE>
<b:PATIENTCASETYPE>c088796a-6981-4639-9ba9-776eb1906a8f</b:PATIENTCASETYPE>
<b:PATIENTID>c4ae821d-8c26-4002-b5bc-c3fce3d29b6c</b:PATIENTID>
<b:SOCIALSECURITYNO i:nil="true">
</b:SOCIALSECURITYNO>
<b:SUBJECT>NURŞEN GENÇ</b:SUBJECT>
<b:USERID i:nil="true">
</b:USERID>
</b:APT_APPOINTMENT>
<b:APT_APPOINTMENT>
<b:APPOINTMENTDATE>2012-05-31T12:45:00</b:APPOINTMENTDATE>
<b:APPOINTMENTENDDATE>2012-05-31T16:30:00</b:APPOINTMENTENDDATE>
<b:APPOINTMENTSTATUS>46814e8a-30ad-4648-a98d-d0134f8eccc4</b:APPOINTMENTSTATUS>
<b:APPOINTMENTTYPE>ce8482b1-2cc3-41e5-9d54-9f989d50ad66</b:APPOINTMENTTYPE>
<b:ARRIVALDATE i:nil="true">
</b:ARRIVALDATE>
<b:ARRIVALNO i:nil="true">
</b:ARRIVALNO>
<b:ARRIVALSTATUS i:nil="true">
</b:ARRIVALSTATUS>
<b:DEPARTUREDATE i:nil="true">
</b:DEPARTUREDATE>
<b:DOCTORID>20376fd9-2411-46c2-8463-72fb995de038</b:DOCTORID>
<b:ENTRYDATE>2012-05-31T13:56:50.773</b:ENTRYDATE>
<b:ENTRYUSERID i:nil="true">
</b:ENTRYUSERID>
<b:ID>bb174e0c-4ebb-4d46-9245-dd88b59d89d1</b:ID>
<b:ISACTIVE>true</b:ISACTIVE>
<b:ISCLOSED>false</b:ISCLOSED>
<b:NOTE>akşama kadar çok uğraştırdın!</b:NOTE>
<b:PATIENTCASETYPE>c088796a-6981-4639-9ba9-776eb1906a8f</b:PATIENTCASETYPE>
<b:PATIENTID>1c108f70-f86b-4a1b-b5bd-2e81ded090bd</b:PATIENTID>
<b:SOCIALSECURITYNO i:nil="true">
</b:SOCIALSECURITYNO>
<b:SUBJECT>Perveen Mahmoodi</b:SUBJECT>
<b:USERID i:nil="true">
</b:USERID>

    

2 个答案:

答案 0 :(得分:1)

尝试将查询的IncludeTotalCount属性显式设置为true(在加载之前):

var query = context.GetAppointmentsBySearchQuery();
query.IncludeTotalCount = true;
context.Load(query)

答案 1 :(得分:0)

我按照此链接http://www.telerik.com/community/forums/silverlight/data-pager/raddatapager-displays-just-one-page.aspx找到了解决方案。

我使用DomainDataSource和RadDataPager。我只是将DomainService Query Method提供给DomainDataSource的QueryName属性。我还在客户端添加了一个分类器(实际上我正在修改另一个人的软件)。如图所示

domainDataSource.SortDescriptors.Add
(new SortDescriptor() { PropertyPath = "APPOINTMENTDATE", 
Direction = System.ComponentModel.ListSortDirection.Ascending });

最后,我从Telerik的链接中找到了解决方案。据我所知,问题是;在我的第一个查询telerik的组件中有关于排序的麻烦。因为我在服务器端运行的查询方法是IQueryable。有趣的是,如果我查询它运行3次:)

无论如何,我在服务器端添加了Orderby Operation并将返回类型更改为IOrderedEnumerable,一切都恢复正常。