我有一個使用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