0

我有一个文档库。我想根据一些过滤条件过滤文档。动态生成 Caml 查询真的很困难,这将根据过滤器值给出实际结果。

过滤器值是文档库中的列。Linq to Sharepoint 支持列表,但无论如何我也可以查询文档库吗?

4

1 回答 1

0

在使用 SPMetal 工具生成实体后,您可以使用 Linq To Sharepoint。

http://www.codeproject.com/Articles/399927/SharePoint-2010-LINQ-and-SPMetal

这是 Sharepoint Link 的示例:

using (SiteEntitiesDataContext context = new SiteEntitiesDataContext("http://appes-pc"))
{
    var result = context.Manager.Where(m => m.Country == "USA");

    foreach (ManagerItem manager in result)
    {
        Console.WriteLine(manager.Name);
    }
}

或者,如果您想使用 CAML,有一个非常好的 CAML 构建器实用程序,称为:

Camlex.NET - http://camlex.codeplex.com/

所以这:

<Where>
  <Eq>
    <FieldRef Name="Status" />
    <Value Type="Text">Completed</Value>
  </Eq>
</Where>

可以写成:

string caml =
    Camlex.Query()
        .Where(x => (string)x["Status"] == "Completed").ToString();
于 2013-08-18T15:23:58.480 回答