通过服务器端代码查询

上次修改时间: 2010年2月2日

适用范围: SharePoint Foundation 2010

本文内容
使用 CAML 和 SPQuery 进行查询
使用 LINQ to SharePoint 提供程序进行查询
CAML 对比 LINQ

本主题概述利用服务器端代码查询 Microsoft SharePoint Foundation 数据的两种方式的不同。

使用 CAML 和 SPQuery 进行查询

可以通过使用常规的服务器对象模型来查询任何类型的 SharePoint Foundation 数据,包括非列表数据。用于查询的最重要的类是 SPQuery。部分通过协作应用程序标记语言 (CAML) 编写的查询会分配给 SPQuery 对象的 QueryJoinsProjectedFieldsViewFields 属性。该对象然后会传递到一个方法,例如,可返回所查询项的 SPList.GetItems()

例如,请参见使用列表对象和集合如何:从列表返回项

使用 LINQ to SharePoint 提供程序进行查询

通过使用 LINQ to SharePoint 提供程序,您可以并且仅可以查询 SharePoint Foundation 列表数据。您可使用 LINQ 语法编写查询并将结果分配到一个返回对象。第一次执行查询,将会枚举返回对象。此时,LINQ to SharePoint 提供程序会将此查询转换为一个 CAML 查询,然后像处理任何其他 CAML 查询一样处理它。有关详细信息,请参见使用 LINQ to SharePoint 管理数据节点下面的主题。

CAML 对比 LINQ

CAML 查询的主要优点是,它无需将查询从 LINQ 语法转换为 CAML 语法,因而可能会存在性能优势。

使用 LINQ 查询的主要优点包括:

  • 可以使用集成到 C# 和 Microsoft Visual Basic 中的 LINQ 语法和 LINQ 关键字。相比之下,CAML XML 容易出错误,而且仅适用于 SharePoint Foundation。

  • 通过使用 LINQ to SharePoint 提供程序,您使用的是强类型的列表项对象。在 SharePoint Foundation 客户端对象模型中,任意两个 SPListItem 对象都是相同的类型,即使它们表示完全不同类型的列表中的项。但是,LINQ to SharePoint 提供程序使用实体类,并且将为网站中任何列表上所使用的每个内容类型包含一个类。例如,Announcements 列表中的项是 Announcement 类型的对象,而 Tasks 列表上的项是 Task 类型的对象。

请参阅

引用

Query 元素(列表)

概念

查询架构

通过客户端代码查询