我需要從簡單的控制檯應用程序(.net 4.5)中的SharePoint Online列表中提取數據。
爲此,我添加了對Microsoft.SharePoint.Client
和Microsoft.SharePoint.Client.Runtime
的引用。
下面做什麼,我需要......我應該使用SPContext還是ClientContext?
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"]);
}
我現在需要一個Query
和RowLimit
一些更復雜的查詢。在這個更復雜的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>
這似乎並沒有工作...