Sharepoint OData查询无法使用Where子句进行编译

时间:2013-08-09 07:54:35

标签: c# linq odata

我正在为一堆我们经常需要查询的Sharepoint Lists创建一个类库。

问题是,如果像

一样简单,那么查询在所有页面上运行得很好(服务器端分页大约15个分页1000个项目)
query = Tickets.Expand(o => o.Property1).Expand(o => o.Property2)

将响应转换为列表,然后可以进一步查询/排序/用户需要什么。 但是,我需要使用预定义的过滤器(按日期,按用户等)编写更多方法。

这里编译器向我抛出错误。

public IEnumerable<TicketsItem> GetTicketsByDate(DateTime? startDate)
    {
        ResultList = new List<TicketsItem>();
        query = oDataService.Tickets.Where(d => d.EMail == "1");

        token = null;
        // Query ausführen
        response = oDataService.Execute<TicketsItem>(query.RequestUri) as QueryOperationResponse<TicketsItem>;
        do
        {
            // wenn Paging aktiv, nächste Seite vorbereiten
            if (token != null)
            {
                response = oDataService.Execute<TicketsItem>(token) as QueryOperationResponse<TicketsItem>;
            }
            // Query-Ergebnisse hinzufügen
            ResultList.AddRange(response);

        } while ((token = response.GetContinuation()) != null);

        return ResultList;
    }

where子句只是一个毫无意义的模型。重要的部分是以下错误:

  

“System.Linq.IQueryable”   不能被隐含地转换成   “System.Data.Services.Client.DataServiceQuery”   (免费翻译从德语到英语)

为什么没有where子句的查询运行正常,为什么一个查询失败?

1 个答案:

答案 0 :(得分:0)

愚蠢的我。

query = oDataService.Tickets.Where(d => d.Created == dateStarted) as DataServiceQuery<TicketsItem>

做了这个伎俩