gpt4 book ai didi

c# - 跨 Sharepoint 服务器上所有站点和子站点的 Linq 查询?

转载 作者:行者123 更新时间:2023-11-30 18:08:26 25 4
gpt4 key购买 nike

我正在为 Sharepoint 2010 安装开发 Web 部件。这有多个站点,每个站点都有页面,并且可能有子站点,它们自己有更多的页面和站点。我想获得整个安装中符合特定条件的所有页面的列表(例如 title == "Test" )。

我可以使用 CAML SPSiteDataQuery 对象并将“Webs”属性设置为 <Webs Scope="Recursive" /> 来执行此操作.显然,这会使查询考虑当前站点和所有子站点。

另一方面,我想尽可能使用 linq2sp,因为它会为其他开发人员提供更轻松的学习曲线。使用 SPMetal,我可以为我的站点生成一个 DataContext,然后可以使用 linq 查询它,但这只会访问根站点中的页面。

是否有某种方法可以控制 Linq 查询的范围,使其适用于所有站点的所有页面?

谢谢, S

最佳答案

经过……反射(reflection)……看来您(和我们所有人)都不走运。 LINQ to Sharepoint 将查询转换为 SPQuery 对象,只能用于查询特定列表。 SPSiteDataQuery 未在 Microsoft.SharePoint.Linq 程序集中的任何位置使用。我猜你可以遍历执行相同查询的所有列表,但那会非常低效。

您只能使用 EntityList< TEntity>.ScopeToFolder 将特定列表的范围限定到文件夹方法。

一种可能的解决方法是使用支持跨站点查询的自定义 Sharepoint LINQ 提供程序,例如 this one .我没有使用过它,所以我不能保证。

关于c# - 跨 Sharepoint 服务器上所有站点和子站点的 Linq 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3151651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com