2
我们有一个SharePoint查询可能运行在500个文档的库上,以撤回标记为活动(Active列中的active = true)的已发布文档的最高版本。SharePoint库查询运行速度很慢
这段时间过长(约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();
}
}
在关闭部分查询之后,它是引用放慢查询的文件版本的行(LINQ变为每个已发布文档的单独查询)。我不认为我可以访问CAML中的文件版本,所以我认为我最好的选择是重写代码以检索已发布的文档,然后在用户选择文档后获取特定的版本信息。感谢回复! – 2012-03-23 16:19:59