SharePoint CSOM C#使用Where子句性能加载查询

时间:2016-07-26 14:48:54

标签: sharepoint-2013 client-object-model

SharePoint CSOM如何处理此代码块?

require(plotly)
data(airquality) 

## Scatter plot ##

c <- plot_ly(data = airquality, 
    x = Wind,
    y = Ozone, 
    type = "scatter",
    mode = "markers"
    )
c

“allDocs”集合是否完全枚举,或者Load参数中的Where子句是否精确定位了单个文件?

此外,必须有更好的方法在CSOM中通过文件名检索文件,而不选择“allDocs [0]”索引集合。 你会怎么做?

2 个答案:

答案 0 :(得分:4)

如果使用以下代码,它应该精确定位单个文件:

dt1
  

你会怎么做?

可能是CAML查询。

答案 1 :(得分:0)

  

Microsoft®SharePoint®Server2010允许您使用LINQ to SharePoint   利用LINQ框架和LINQ to Entities对抗   SharePoint列表。 LINQ框架将LINQ转换为SharePoint   语句到协作应用程序标记语言(CAML),和   然后针对SharePoint对象模型或Web执行CAML   服务。 Source: MSDN

链接页面继续显示如何将文本编写器添加到context.Log属性以查看由Linq-to-Sharepoint生成的CAML。

在您的代码中,Linq被转换为IQueryable,它被传递到加载函数并转换为CAML。然后executeQuery运行所有存储的IQueryable表达式,并使用结果填充变量,例如allDocs。这是通常的Linq延迟执行。

如果您使用.Single(...)方法而不是.Where(...),Linq将尝试立即执行查询并返回单个项而不是IQueryable,其中load方法是期待。

正如Alex K所说,在查询执行完毕后,你可以使用标准的Linq方法,如.Single(),。UnitOrDefault(),.First(),.FirstOrDefault()等获取唯一或第一项从结果。