您好我自己做了一个教程环绕sharepoint和c#mvc。 我已经按照了一些内容来添加列表并继续编辑和删除。
所有工作都在List中使用 getItemById 查找。但这有很大的局限性。 所以我开始研究CamlQuery的问题 再经过一些试验和错误后,我得到了一些选择第一项的东西。
所以我想我会使用 firstOrDefault 来获取列表项,然后我可以编辑/删除它。 这虽然似乎无法正常工作,但是通过列表呢。
基本问题是为什么这样做
Web web = _context.Web;
List categoryList = web.Lists.GetByTitle("Categories");
CamlQuery query = new CamlQuery();
query.ViewXml = @" <View><Query> <OrderBy> <FieldRef Name='ID' Ascending='True' /> </OrderBy> </Query> <RowLimit>1</RowLimit> </View>";
ListItemCollection categories = categoryList.GetItems(query);
_context.Load(categories);
_context.ExecuteQuery();
foreach (var category in categories)
{
category.DeleteObject();
}
_context.ExecuteQuery();
但这不是
Web web = _context.Web;
List categoryList = web.Lists.GetByTitle("Categories");
CamlQuery query = new CamlQuery();
query.ViewXml = @" <View><Query> <OrderBy> <FieldRef Name='ID' Ascending='True' /> </OrderBy> </Query> <RowLimit>1</RowLimit> </View>";
ListItemCollection categories = categoryList.GetItems(query);
_context.Load(categories);
_context.ExecuteQuery();
var category = categories.FirstOrDefault();
category.DeleteObject();
_context.ExecuteQuery();
作为附带问题,查询
<View><Query> <OrderBy> <FieldRef Name='ID' Ascending='True' /> </OrderBy> </Query> <RowLimit>1</RowLimit> </View>
效率这么高吗?它是否获得所有行,然后在视图中施加限制?