我们正在使用最新的WCF dll(5.6.1)来实现OData客户端。我们向服务发送请求,我们应该获得多个不同的条目。不幸的是,出现了问题,在响应中我们得到了正确的条目计数,这些条目被错误地复制(条目计数重复了最后一个条目)。当发送到服务的url在浏览器中执行时,响应中的条目是正确的 - 每个条目都不同。同样的情况是在linq查询中我只选择了一些新的{x.column1,x.column2}列 - 每个条目都不同。
这是浏览器响应的一部分:
<entry>
<id>...</id>
<title type="text">...</title>
<updated>2014-05-22T08:44:46Z</updated>
<category term="GET_AVG_CONS.Y_AVG_CONS_YEAR" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
<link href="Y_AVG_CONS_YEAR_COLLECTION(Customer='1000000167',CompCode='DE0J')" rel="edit" title="Y_AVG_CONS_YEAR"/>
<content type="application/xml">
<m:properties>
<d:BpCat/>
<d:Cusvalsg/>
<d:Salesorg/>
<d:Flag/>
<d:Calmonth>201309</d:Calmonth>
<d:BpCatX/>
<d:CusvalsgX/>
<d:SalesorgX/>
<d:FlagX/>
<d:CalmonthX/>
<d:Customer>1000000167</d:Customer>
<d:ProdHier/>
<d:CompCode>DE0J</d:CompCode>
<d:HierX/>
<d:OrdMeth/>
<d:Nptotcap>2200.000</d:Nptotcap>
<d:Type/>
<d:Code>000</d:Code>
<d:Message/>
</m:properties>
</content>
</entry>
<entry>
<id>...</id>
<title type="text">...</title>
<updated>2014-05-22T08:44:46Z</updated>
<category term="GET_AVG_CONS.Y_AVG_CONS_YEAR" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
<link href="Y_AVG_CONS_YEAR_COLLECTION(Customer='1000000167',CompCode='DE0J')" rel="edit" title="Y_AVG_CONS_YEAR"/>
<content type="application/xml">
<m:properties>
<d:BpCat/>
<d:Cusvalsg/>
<d:Salesorg/>
<d:Flag/>
<d:Calmonth>201310</d:Calmonth>
<d:BpCatX/>
<d:CusvalsgX/>
<d:SalesorgX/>
<d:FlagX/>
<d:CalmonthX/>
<d:Customer>1000000167</d:Customer>
<d:ProdHier/>
<d:CompCode>DE0J</d:CompCode>
<d:HierX/>
<d:OrdMeth/>
<d:Nptotcap>220.000</d:Nptotcap>
<d:Type/>
<d:Code>000</d:Code>
<d:Message/>
</m:properties>
</content>
</entry>
这是linq查询选择所有列的响应的一部分:
当我只选择linq查询中的一些列时,这是响应:
有谁知道可能是什么问题?
@Zoe
浏览器和应用程序发送的导致重复条目的请求是相同的:
IPaddress:port / something / GET_AVG_CONS / Y_AVG_CONS_COLLECTION()?$ filter = Customer eq&#39; 1000000167&#39;。
来自应用程序的请求导致正确输入:
IPaddress:port / something / GET_AVG_CONS / Y_AVG_CONS_YEAR_COLLECTION()?$ filter = Customer eq&#39; 1000000167&amp; $ select = Calmonth,Nptotcap。
@christiandev
我不明白你的问题。我正在使用linq查询。在执行查询之前,集合中没有条目。执行后,它们已经重复了。