我将一些数据存储在 SQL 服务器中的 XML 文件中作为 varbinary。如何创建并发访问?

I am storing some data in XML files in a SQL Server as varbinary. How to create concurrent access?

每当用户想要编辑或读取某些数据时,他都会在其应用程序中获得 XML 文件的副本。此时,不得允许其他用户编辑同一个 XML 文件,但应该可以查看它。我可以向存储 XML 文件的 SQL 服务器 table 添加一个锁定的列,但我仍然不能允许第二个用户读取并防止只写入。或者有没有其他方法可以保证 XML 文件中数据的并发性和原子性?

在 table 上实施锁定列。当有人点击编辑时,他们请求锁定。使用 EF 很容易做到这一点 - 只需将 'LockedTime' and/or 'LockedBy' 属性 的并发值设置为 fixed.

我建议同时拥有 'LockedBy' 和 'LockedTime';这样,如果某些用户忘记离开,您仍然可以让其他人最终进入并编辑数据。

在这种情况下,您可能希望将 'original' XML 存储在 model/view 中,并仅在 'original' [=25] 时执行更新=] 仍然是数据库中的内容。