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

C# 我将一些数据存储在SQL Server中的XML文件中,作为varbinary。如何创建并发访问?,c#,sql,sql-server,xml,acid,C#,Sql,Sql Server,Xml,Acid,每当用户想要编辑或读取某些数据时,都会在应用程序中获得XML文件的副本。此时,不允许其他用户编辑相同的XML文件,但应该能够查看该文件。我可以在存储XML文件的SQL Server表中添加一个锁定的列,但仍然不能允许第二个用户读取和防止只写入。或者是否有其他方法来保证XML文件中数据的并发性和原子性?在表上实现锁定列。当有人单击编辑时,他们请求锁定。使用EF很容易做到这一点-只需将“LockedTime”和/或“LockedBy”属性的并发值设置为fixed 我建议同时设置“锁定时间”和“锁定时

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

在表上实现锁定列。当有人单击编辑时,他们请求锁定。使用EF很容易做到这一点-只需将“LockedTime”和/或“LockedBy”属性的并发值设置为fixed

我建议同时设置“锁定时间”和“锁定时间”;这样,如果某个用户忘记离开,您仍然可以让其他人最终进入并编辑数据

在这种情况下,您可能希望将“原始”XML存储在模型/视图中,并且仅当“原始”XML仍然是数据库中的XML时才执行更新。

您是否可以存储唯一地将其锁定在一列或类似列中的人?然后,您可以确定其他人是否具有只读或写访问权限。您可能需要一种机制,以便在释放锁时让某人知道他们的只读版本已更新。