ODATA过滤“$ top = 50”导致无法解释的重复

时间:2017-01-27 21:01:57

标签: c# sql asp.net-web-api odata asp.net-web-api-odata

我正在开发一个API,我正在处理的对象有很多很多记录。我通过以下网址访问它:

{{api_root}}/Objects?$top=50

为了保持时间,我将查询限制为50.但是,我最近添加了一个字符串ID列表并遇到了这个问题:列表,通过这些行获得:

.ForMember(
    d => d.FooIds,
    o => o.MapFrom(
        s => s.FooSys.Where(q => q.Fee != null)
                     .Select(q => q.Fee.Id)))

给我一​​个长度为30的一个唯一ID的重复列表,并且只返回第二个对象,再次包含30个唯一ID的重复列表,如下所示:

"data": {
    "list": [
      {
        "ObjectId": "ID1",
        FeeIds": [
          "UniqueID", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", "UniqueID Copy"
        ],
        ---more object data---
      },
      {
        "ObjectId": "ID2",
        FeeIds": [

          "UniqueID", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", 
          "UniqueID Copy", "UniqueID Copy", "UniqueID Copy", "UniqueID Copy"
        ],
        ---more object data---
      }
    ]

但是,如果我通过其ID获取单个对象,则只显示一个UniqueID。如果我缩短我的顶部:“$ top = 10”,那么我得到10份FeeIds而不是30份。

之前有没有人见过这种行为?我很困惑!

0 个答案:

没有答案