我应该使用SPContext还是ClientContext?

时间:2015-08-13 10:10:14

标签: c# sharepoint sharepoint-online

我需要在简单的控制台应用程序(.net 4.5)中从SharePoint Online列表中提取数据 为此,我添加了对Microsoft.SharePoint.ClientMicrosoft.SharePoint.Client.Runtime的引用 以下是我需要的......

ClientContext ctx = new ClientContext(siteUrl);
ctx.Credentials = new SharePointOnlineCredentials(siteUser, securePass);

Web site = ctx.Web;
ctx.Load(site);
List lst = site.Lists.GetByTitle("SomeList");
CamlQuery query = new CamlQuery();
query.ViewXml = @"<View>
                    <ViewFields>
                        <FieldRef Name='Title' />
                    </ViewFields>
                </View>";

ListItemCollection items = lst.GetItems(query);
ctx.Load(items);
ctx.ExecuteQuery();
foreach (var item in items)
{
    Console.WriteLine(item["Title"]);
}

我现在需要使用QueryRowLimit进行更复杂的查询。在这个更复杂的CamlQuery中,RowLimit似乎被忽略了。

<View>
    <RowLimit>1000</RowLimit>   
    <ViewFields>
      <FieldRef Name='Title' />
      <FieldRef Name='ProductName' />
      <FieldRef Name='GroupName' />
    </ViewFields>
    <Query>
      <Where>
          <Neq>
              <FieldRef Name='GroupName' />
              <Value Type='Lookup'></Value>
          </Neq>
      </Where>
    </Query>
</View>

我无法让RowLimit工作。我遇到的所有示例都使用SPContext,它能够在SPQuery对象上设置RowLimit。

SPContext需要一个大的SharePoint dll才能工作,而ClientContext已经存在于Visual Studio中(使用2015)并且DLL的数量要小得多。

所以..

1。我什么时候应该使用SPContext?
 2.有什么理由说RowLimit在上面的CamlQuery中不起作用吗?

编辑13/08 13:15
问题似乎不在于RowLimit,而在于查询本身。

<Neq>
    <FieldRef Name='GroupName' />
    <Value Type='Lookup'></Value>
</Neq>

这似乎不起作用......

0 个答案:

没有答案