我有一個外部列表,其中有一個名爲「CostPerUnit」字段的項目。該字段已經設置好的一個值,我想用下面的代碼來改變其值:Sharepoint 2013外部列表:ListItem.Update()正在恢復項目值
private void updateCost(int orderIndex, decimal cost)
{
SPContext.Current.Web.AllowUnsafeUpdates = true;
SPListItem item = SPContext.Current.Web.Lists[CListNames.ORDERS].Items[orderIndex];
item["CostPerUnit"] = cost;
item.Update();
SPContext.Current.Web.AllowUnsafeUpdates = false;
}
當我打電話「item.Update()」,它發生在調用我的更新方法之前的Sharepoint呼喚ReadItem(特定查找程序),它用來自數據庫的原始值覆蓋整個列表項目。下面是我的具體Finder和更新方法:
public static TB_ORDER ReadItem(int id, decimal costPerUnit, string comments)
{
OT_MODEL_DALDataContext dataContext = new OT_MODEL_DALDataContext(_ConnectionString);
TB_ORDER Order = (from order in dataContext.TB_ORDERs.AsEnumerable() where order.Id == id select order).Single();
return Order;
}
public static void Update(TB_ORDER order)
{
OT_MODEL_DALDataContext dataContext = new OT_MODEL_DALDataContext(_ConnectionString);
var Order = (from orders in dataContext.TB_ORDERs
where orders.Id == order.Id
select orders).Single();
Order.Comments= order.Comments;
Order.CostPerUnit = order.CostPerUnit;
dataContext.SubmitChanges();
}
的「秩序」項目傳遞給更新的方法是一個由特定的finder方法檢索,所以做項目的更改都將丟失,而不是致力於爲客戶解除數據庫。
*更新*我的問題是:如何防止Sharepoint在調用updater方法之前用其原始值覆蓋ItemList?
任何幫助將不勝感激。提前致謝。
問題是...? –
如何防止Sharepoint用其原始值覆蓋ListItem? – Aleix