如何优化此SharePoint查询条款?

兰吉斯·文卡特什(Ranjith Venkatesh)

我有一个托管元数据服务,该服务具有一个带有术语集和术语的术语组。

我是SharePoint查询的新手,目前正在执行以下操作:

  1. 获取客户上下文
  2. 设定凭证
  3. 更新客户端上下文缓存
  4. 参加分类会议
  5. 获取定期商店
  6. 获取术语集
  7. 获取条款

对于上述每个步骤,我正在客户端上下文上加载并执行查询。

  1. 有没有更好的方法来加载和执行查询?
  2. 给定术语集的UID,是否可以使用直接的LINQ查询或CAML查询来获取所需的术语?

代码:

var siteUrl = ConfigHelper.GetValue("SharepointSiteUrl");
var clientContext = new ClientContext(siteUrl);

clientContext.Credentials = new NetworkCredential(ConfigHelper.GetValue("ServiceAccountLogonName"), ConfigHelper.GetValue("ServiceAccountPassword"));

var taxonomySession = TaxonomySession.GetTaxonomySession(clientContext);

taxonomySession.UpdateCache();

clientContext.Load(taxonomySession, ts => ts.TermStores);
clientContext.ExecuteQuery();

if (taxonomySession.TermStores.Count == 0)
{
    throw new InvalidOperationException("The Taxonomy Service is offline or missing");
}

var termStore = taxonomySession.TermStores[1];

clientContext.Load(termStore);
clientContext.ExecuteQuery();

var termSet = termStore.GetTermSet(new Guid("f40eeb54-7c87-409d-96c7-75ceed6bff60"));
clientContext.Load(termSet);
clientContext.ExecuteQuery();

var terms = termSet.GetAllTerms();
clientContext.Load(terms);
clientContext.ExecuteQuery();

foreach (var term in terms)
{
    clientContext.Load(term, t => t.Id, t => t.Name);
    clientContext.ExecuteQuery();                
}

如何优化此SharePoint查询条款?

瓦迪姆·格雷米亚切夫(Vadim Gremyachev)

指定示例的主要问题是将大量中间请求提交到服务器,因此主要的优化将是:

  • 消除这些中间请求(请参见下面的修改示例)
  • 或者由于SharePoint CSOM支持请求批处理, 可以仅使用单个批处理请求从服务器请求多个客户端对象

由于如果您的目标是检索特定术语集的术语,则可以对示例进行优化,如下所示:

var taxonomySession = TaxonomySession.GetTaxonomySession(ctx);
var termStore = taxonomySession.GetDefaultSiteCollectionTermStore();
var termSet = termStore.GetTermSet(termSetId);
var terms = termSet.GetAllTerms();
ctx.Load(terms, tcol => tcol.Include(t => t.Id,t => t.Name));
ctx.ExecuteQuery();

一些建议

  • 身高TermStoreCollection.GetByNameTermStoreCollection.GetById超过过得去指数TermStore因为在后一种情况下的方法TermStoreCollection,必须首先初始化
  • 使用TaxonomySession.GetDefaultSiteCollectionTermStore method,如果你需要获得默认术语库

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何优化此查询?

来自分类Dev

如何优化此查询?

来自分类Dev

如何优化此LinQ查询?

来自分类Dev

如何优化此ActiveRecord查询?

来自分类Dev

如何优化此专用查询?

来自分类Dev

如何优化此MySQL查询以执行Fastar?

来自分类Dev

如何优化此SQL查询并缩短?

来自分类Dev

如何使用Rails优化此查询

来自分类Dev

如何优化在Postgresql中查询此数据?

来自分类Dev

如何使用whereHas优化此查询?

来自分类Dev

如何优化此查询以防止超时

来自分类Dev

请问如何优化此mysql查询?

来自分类Dev

如何优化此MySQL查询以执行Fastar?

来自分类Dev

如何使用表联接优化此查询?

来自分类Dev

如何使用Rails优化此查询

来自分类Dev

如何使用自联接优化此查询?

来自分类Dev

如何优化此查询?检索列的值

来自分类Dev

动态救援条款,此代码如何工作?

来自分类Dev

如何优化此查询的执行时间

来自分类Dev

如何在执行速度方面优化此查询

来自分类Dev

如何优化此依赖日期值的JOIN查询?

来自分类Dev

如何优化此MYSQL查询-联接多个表

来自分类Dev

我如何优化此查询以缩短执行时间

来自分类Dev

如何优化此 MySQL 查询 - 在视图中?性能调优

来自分类Dev

优化/简化此SQL查询

来自分类Dev

优化此查询中的计算?

来自分类Dev

优化/简化此SQL查询

来自分类Dev

如何优化此UDF

来自分类Dev

如何优化此功能