为了账号安全,请及时绑定邮箱和手机立即绑定

防止将重复文档插入 Lotus Notes 数据库

防止将重复文档插入 Lotus Notes 数据库

C#
长风秋雁 2021-07-02 14:00:36
我在 iis 中托管了 ac# web api,它有一个 post 方法,可以将文档 ID 列表插入到 Lotus Notes 数据库中。可以多次调用 post 方法,我想防止插入重复的文档。这是从帖子中调用的代码(在静态类中):lock (thisLock){   var id = "some unique id";   doc = vw.GetDocumentByKey(id, false);   if (doc == null)   {      NotesDocument docNew = db.CreateDocument();      //some more processing      docNew.Save(true, false, false);   }}即使锁定到位,我也会遇到插入重复文档的情况。是因为请求可以在新进程上执行吗?防止它发生的最佳方法是什么?
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

您的问题是:getdocumentbykey 取决于最新的视图索引。在繁忙的服务器上,不能保证这是真的。您可以尝试调用 vw.Update,但不幸的是,这不会触发视图索引的更新,因此它可能没有任何影响(它只是更新 vw 对象以表示后端发生的变化,如果后端做了不更新,那么它什么都不做)。

您可以db.Search('IdField ="' & id & '"', Nothing, 0)改用,因为搜索不依赖于要重建的索引。这会稍微慢一点,但应该更准确。


查看完整回答
反对 回复 2021-07-18
  • 2 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信