Sharepoint issue ListData.svc$扩展允许的最大值为7
我正在尝试以下查询:Sharepoint issue ListData.svc$扩展允许的最大值为7,sharepoint,asp.net-web-api,Sharepoint,Asp.net Web Api,我正在尝试以下查询: http://contoso/_vti_bin/listdata.svc/Product()?$expand=OrderDetail/Category,Repository/Country,Repository,Origin,OrderDetail/Order&$select=Id,OrderDetail/Category/Title,Repository/Country/Title,Repository/Title,Origin/Title,OrderDetail
http://contoso/_vti_bin/listdata.svc/Product()?$expand=OrderDetail/Category,Repository/Country,Repository,Origin,OrderDetail/Order&$select=Id,OrderDetail/Category/Title,Repository/Country/Title,Repository/Title,Origin/Title,OrderDetail/Category/Specification,OrderDetail/Order/ImportDate
我得到消息:
请求包括8$expand段,但允许的最大值为7
这是不可能的,还是有其他方法可以做到
提前谢谢。错误
请求包括8$expand段,但允许的最大值为
七,
由于使用的$expand
运算符可包含在单个请求中的最大相关实体数设置为7
关于数据服务配置
- 用于管理 数据服务的配置数据,在我们的例子中是SharePoint REST服务
- 属性-获取或设置通过使用$expand运算符可以包含在单个请求中的最大相关实体数
绕过此类限制的一个选项是扩展SharePoint REST服务并增加DataServiceConfiguration.MaxExpandCount 实施 ContosoListData.svc:
<%@ServiceHost language="C#" Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressDataServiceHostFactory, Microsoft.SharePoint.Client.ServerRuntime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Service="Contoso.SharePoint.Linq.ContosoListDataService, Contoso.SharePoint.Linq.DataService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=47134954c7026996" %>
ContosoListDataService.cs:
using Microsoft.SharePoint.Linq;
using System;
using System.Data.Services;
using System.Data.Services.Common;
namespace Contoso.SharePoint.Linq
{
public class ContosoListDataService : ListDataService
{
public new static void InitializeService(DataServiceConfiguration config)
{
if (config == null)
throw new ArgumentNullException("config");
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead);
config.SetEntitySetPageSize("*", 1000);
config.MaxBatchCount = 1000;
config.MaxChangesetCount = 100;
config.MaxExpandCount = 14; //<-- set custom
config.MaxExpandDepth = 7;
config.MaxObjectCountOnInsert = 100;
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
config.UseVerboseErrors = true;
}
}
}
使用Microsoft.SharePoint.Linq;
使用制度;
使用系统、数据、服务;
使用System.Data.Services.Common;
命名空间Contoso.SharePoint.Linq
{
公共类ContosoListDataService:ListDataService
{
公共新静态void InitializeService(DataServiceConfiguration配置)
{
if(config==null)
抛出新的ArgumentNullException(“配置”);
config.SetEntitySetAccessRule(“*”,EntitySetRights.All);
config.SetServiceOperationAccessRule(“*”,ServiceOperationRights.AllRead);
config.SetEntitySetPageSize(“*”,1000);
config.MaxBatchCount=1000;
config.MaxChangesetCount=100;
config.MaxExpandCount=14;//我建议您使用多个查询,而不是只通过一个查询获取答案,每个查询负责获取特定列表的记录。您的查询在共享点上存在非常严重的性能问题。