我有一个使用 XML 进行数据存储的旧系统。我打算将数据用于另一个小型项目,并希望使用 LINQ to XML 来查询/更新数据;但是有两种情况我不确定我是否需要自己处理:
1-如果我有类似于以下代码的内容,并且有 2 个人碰巧同时点击了 Save()?LINQ to XML 是等到文件再次可用后再保存,还是会抛出?除非需要,否则我不想放锁:)
// I assume the next line doesn't lock the file
XElement doc = XElement.Load("Books.xml");
XElement newBook = new XElement("Book",
new XAttribute("publisher", "My Publisher"),
new XElement("author", "Me")));
doc.Add(newBook);
// What happens if two people try this at the same time?
doc.Save("Books.xml");
2-如果我加载()一个文档,在特定节点下添加一个条目,然后点击保存();如果另一个用户已经在该节点下添加了一个值(因为我点击了我的 Load()),或者更糟糕的是,删除了该节点,会发生什么?
显然我可以解决这些问题,但是我找不到任何可以告诉我是否必须这样做的文档,而且第一个文档至少对于可靠地测试来说有点麻烦。