0

我在 Silverlight 4 Ria 项目的服务器端有一个 Linq 查询,它根据时间段(月)返回许多不同的项目。

我遇到的问题是当客户端回调触发数据已损坏并且从服务器返回的所有项目都是集合中最后一个项目的副本时。

服务器调用

Public Function GetBusinessHeadCountHistory(ByVal businessUnit As String) As IEnumerable(Of EngineeringHeadCountBusinessHistory)
        Return From t In ObjectContext.tblTimes
                     Join h In ObjectContext.tblEngineeringDashboard_CADMachinesCounts On t.ID Equals h.TimeID
                     Join b In ObjectContext.tblEngineeringDashboard_Business On h.BusinessID Equals b.ID
                           Where b.BusinessUnit = businessUnit
                           Order By t.Period
                           Select New EngineeringHeadCountBusinessHistory With {.Month = t.Period, .BusinessUnit = b.BusinessUnit, .HeadCount = h.Count}
End Function

客户端回调

Public Property EngineeringBusinessHistoryCount As ReadOnlyObservableCollection(Of EngineeringHeadCountBusinessHistory)
    Get
        Return _engineeringBusinessHistoryCount
    End Get
    Set(ByVal value As ReadOnlyObservableCollection(Of EngineeringHeadCountBusinessHistory))
        _engineeringBusinessHistoryCount = value
        IsBusinessCountBusy = False
        RaisePropertyChanged("ChildReportTitle")
        RaisePropertyChanged("EngineeringBusinessHistoryCount")
    End Set
End Property

我已经确认服务器和 LinqPad 中的 Linq 查询是正确的。

有任何想法吗??

编辑:提琴手原始响应

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 1738
Content-Type: application/msbin1
Expires: -1
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Date: Thu, 30 Jun 2011 11:08:47 GMT

@#GetBusinessHeadCountHistoryResponsehttp://tempuri.org/@!GetBusinessHeadCountHistoryResult aDomainServices i)http://www.w3.org/2001/XMLSchema-instance^
TotalCount�^
RootResults b<http://schemas.datacontract.org/2004/07/EngineeringDashboard_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�_Month����~�X�_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�_Month��@���p�_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�_Month��@DE��_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�_Month���hE��_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�_Month���w`ض�_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�_Month��@E�4��_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�_Month����{���_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount� _Month���x�#��_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount� _Month��@F��_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount� _Month�����/�_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�"_Month���y�nG�_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�"_Month�����_�_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�"_Month�����]w�_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�$_Month���z���_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�$_Month���
����_#EngineeringHeadCountBusinessHistory_BusinessUnit�
skid-steer_ HeadCount�$_Month��@����

菲尔

4

2 回答 2

0

首先,使用 Fiddler 检查原始服务器响应是否正确。

于 2011-06-30T10:50:34.850 回答
0

问题归结为 POCO 类 Key 注释位于非唯一字段上。我已将其更改为唯一的 Month 属性,现在它可以按预期工作。

奇怪的错误虽然......

Imports System.ComponentModel.DataAnnotations
Imports System.Runtime.Serialization

Public Class EngineeringHeadBUHistory

    '<Key()>
    '<DataMember()> _
    'Property BusinessUnit As String
    <Key()>
    <DataMember()>
    Property Month As Date
    <DataMember()> _
    Property HeadCount As Integer

End Class
于 2011-06-30T14:53:46.997 回答