我很想知道如何在事务中的SharePoint上下文中执行一系列操作.例如,我希望能够执行以下操作:
context.BeginTransaction(); listItemA.Update(); listItemB.Update(); context.CommitTransaction();
我知道使用OOTB API是不可能的,但是有人必须弄清楚如何实现这一点.是否可以获取对数据库连接的引用以处理事务?还是其他任何想法?
尽管SharePoint在技术上使用SQL作为存储支持,但我们不应将其视为基于数据库的应用程序.SP创建了一个各种各样的虚假文件系统,这是我们通过API进行交互的方式.因此,从开发人员的角度来看,Sharepoint几乎没有交易.
不幸的是,它几乎就是它的全部内容:)即使考虑直接参与数据库也会导致旧约的痛苦.衣服的撕裂,嚎叫和咬牙切齿;)
只需使用Recycle().跟踪GUID []中的GUID.如果一个失败打开de RecycleBin并通过GUID恢复/删除所有
GUID[] guids = new GUID[]; SPWeb web; SPListItem item; SPList list; try { foreach item in list GUID current = item.Recycle() guids.add(current); item.Delete(); } catch{ if one fails : web.RecycleBin.Restore(guids); } if all succeed : web.RecycleBin.Delete(guids):