Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint issue ListData.svc$扩展允许的最大值为7_Sharepoint_Asp.net Web Api - Fatal编程技术网

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;//我建议您使用多个查询,而不是只通过一个查询获取答案,每个查询负责获取特定列表的记录。您的查询在共享点上存在非常严重的性能问题。