2

当 LINQ 用于检索 SharePoint 对象时,任何人都可以帮助我了解幕后正在进行什么样的工作。例如,我可以使用这样的代码

private IEnumerable<List> newLists;

var dt = new DateTime(2010, 3, 20);
var query = from list
            in clientContext.Web.Lists
            where list.Created > dt && list.Hidden == false
            select list;

newLists = clientContext.LoadQuery(query);
clientContext.ExecuteQuery();

它是如何工作的?

请求是什么样的?

从我发现的文档中:

使用 CSOM 时,可以针对客户端对象(例如列表和 Web)编写 LINQ 查询,然后使用 ClientContext 类将这些查询提交给服务器。请务必了解,当您采用此方法时,您使用的是 LINQ to Objects 来查询 SharePoint 对象,而不是 LINQ to SharePoint。这意味着您的 LINQ 表达式不会转换为 CAML,并且您不会看到与 CAML 转换相关的性能优势。

所以,我有点困惑,因为我认为 LINQ 表达式转换为 Caml 请求。我无法理解它是如何工作的。如何在执行ExecuteQuery()方法时查看请求的详细信息?您能否向我推荐任何用于观看请求的工具?

4

1 回答 1

3

SP 在内部使用 CAML:SP 运行时将 Linq 转换为 CAML 并通过 Soap 请求或 REST 语句发送(如果您使用的是 RESTful 服务):http: //msdn.microsoft.com/en-us/library/ff798339.aspx(举例);

在此处查看更多信息:http: //msdn.microsoft.com/en-us/library/ff798464.aspx

这可能会有所帮助: http: //nikspatel.wordpress.com/2012/08/05/sharepoint-2010-data-querying-options-server-om-vs-client-om-vs-rest-vs-linq- vs-搜索-api/

于 2012-12-02T08:36:47.133 回答