如何优化此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

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

来自分类Dev

如何优化此UDF

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何优化此查询?

来自分类Dev

如何使用whereHas优化此查询?

来自分类Dev

优化/简化此SQL查询

来自分类Dev

如何优化此LinQ查询?

来自分类Dev

如何使用Rails优化此查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何优化此ActiveRecord查询?

来自分类Dev

请问如何优化此mysql查询?

来自分类Dev

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

来自分类Dev

如何优化此专用查询?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

优化此查询中的计算?

来自分类Dev

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

来自分类Dev

如何优化此查询?

来自分类Dev

优化/简化此SQL查询

来自分类Dev

如何使用Rails优化此查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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