我们在一个可能包含500个文档的库上运行了一个SharePoint查询,以提取标记为active的已发布文档的最高版本( Active列中有active=true )。
这花费的时间太长,无法运行(大约3-5秒),这让用户感到沮丧。
可以对下面的查询做些什么来加速它(我希望这几乎是即时的!)
using (var site = new SPSite(Helpers.ConfigurationFile.SharePointUrl().ToString()))
{
using (var web = site.RootWeb)
{
return
web.Folders["Templates"].Files.OfType<SPFile>()
.Where(file => file.Item.HasPublishedVersion)
.Where(file => file.Item.Properties["Active"].ToString() == "true")
.Where(file => file.Item.Versions.OfType<SPListItemVersion>()
.Any(x => x.Level == SPFileLevel.Published))
.Select(file => new LibraryItem(
file.Item.UniqueId,
file.Item.ID,
file.Item.Title,
Helpers.ConfigurationFile.SharePointUrl()
.ToString().AddPathSegment(file.Url),
true,
float.Parse(file.MajorVersion.ToString()
+ "." + file.MinorVersion.ToString())
)
)
.ToList();
}
}
发布于 2012-03-10 00:44:48
以下几点:
https://stackoverflow.com/questions/9638565
复制相似问题