我有一个使用XML来存储数据的旧系统。我打算将这些数据用于另一个小型项目,并希望使用LINQ to XML来查询/更新数据;但有两种情况我不确定是否需要处理自己:LINQ to XML更新 - 它如何处理多个并发读者/作者?
1-如果我有类似于以下代码的内容,并且有两个人碰巧同时点击了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()的文档,添加特定节点下的条目,然后点击保存();如果另一个用户已经在该节点下添加了一个值(因为我点击了我的Load()),甚至更糟糕,删除节点会发生什么?
很明显,我可以解决这些问题,但是我找不到任何可以告诉我是否需要或不需要的文档,并且第一个文档至少可以用来测试可靠性。
感谢您的回复。我认为这是一个LINQ to XML问题,因为我使用LINQ的其他时间,后端数据库负责处理这些事情。我只是好奇LINQ to XML中是否有任何“魔术”。 – 2009-01-08 19:55:36