首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Sharepoint客户端对象模型: Load / Update / Delete方法的使用

Sharepoint客户端对象模型: Load / Update / Delete方法的使用
EN

Stack Overflow用户
提问于 2016-01-21 14:15:07
回答 1查看 1.5K关注 0票数 1

有人能解释一下ClientContext.Load和ListItems ListItem.RefreshLoad()这两种方法的区别或原因吗?有什么不同吗?

为什么ClientContext没有等效的.UpdateDelete方法?

我什么时候必须调用ClientContext.ExecuteQuery方法?

代码语言:javascript
代码运行次数:0
运行
复制
ListItem item = ...;

// 1. Is there a difference between ClientContext.Load(ListItem) and ListItem.RefreshLoad()?
clientContext.Load(item);
item.RefreshLoad();

// 2. Why aren't there methods like ClientContext.Update(...) or ClientContext.Delete(...)?
item.Update();
item.DeleteObject();

// 3. When is the ClientContext.ExecuteQuery needed (load / update / delete)?
 clientContext.ExecuteQuery();

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-21 14:58:22

主要要实现的是客户端对象模型设计为从get到异步。

将客户端上下文对象视为发送指令和接收数据的容器。.Load()方法将指令排队,例如.Load(item)排队等待指令,以检索有关给定列表项的数据。

.ExecuteQuery().ExecuteQueryAsync()方法发送那些排队的指令,并从服务器检索结果。

这些操作不同于针对实际SharePoint对象(如列表和列表项)执行的操作。考虑一下这个例子来自微软。

代码语言:javascript
代码运行次数:0
运行
复制
ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
ListItem newListItem = targetList.AddItem(itemCreateInfo);
newListItem["Title"] = "New Announcement";
newListItem["Body"] = "Hello World!";
newListItem.Update(); 

clientContext.Load(newListItem);
clientContext.ExecuteQuery();  // only at this point is the item actually created

当您在客户端对象模型中创建一个ListItem对象时,您所做的只是在本地内存中创建一个对象--您还没有向服务器发送任何东西来实际创建列表中的项。ListItem对象只是一个占位符,您对它所做的任何操作(例如在上面的示例中创建它并设置其字段值)都存储为需要执行的指令。

当您将该对象加载到客户端上下文对象(通过clientContext.Load(newListItem) )时,您只是将这些指令输入到客户端上下文中。运行clientContext.ExecuteQuery()后,将执行这些指令,占位符对象将使用从服务器返回的任何实际相关数据填充。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34926162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档