Я занимаюсь разработкой приложения для windows phone 7. Я использую XML в качестве базы данных для моего приложения. Я использую файл XML вместо таблицы базы данных для моего приложения. У меня есть следующая структура для одного из моих файлов XML.
<?xml version="1.0" encoding="utf-8" ?>
<Categories>
<Category>
<Category_ID></Category_ID>
<Category_Name></Category_Name>
<TransactionType_ID></TransactionType_ID>
</Category>
<Category>
<Category_ID></Category_ID>
<Category_Name></Category_Name>
<TransactionType_ID></TransactionType_ID>
</Category>
</Categories>
В приведенном выше XML-файле я вставляю значения для Category_Name & TransactionType_ID через пользовательский интерфейс моего мобильного приложения, используя LINQ to XML. В приведенном выше XML-файле я рассматриваю Category_ID как первичный ключ, а TransactionType_ID как внешний ключ, который принадлежит другому XML-файлу. В приведенном выше XML-файле я хочу сгенерировать идентификатор автоинкремента для узла Category_ID, как мы делаем в таблице базы данных. Для этого я использую следующий код
private int new_record_id()
{
IsolatedStorageFile isstore = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream bookfile = new IsolatedStorageFileStream("Categories.xml", System.IO.FileMode.Open, isstore);
XDocument xmldetails = XDocument.Load(bookfile);
var details = (from detail in xmldetails.Descendants("Category")
select (int.Parse(detail.Element("Category_ID").Value))).Max();
bookfile.Close();
return details + 1;
}
Но когда я вставляю первую запись в XML-файл, это выдает ошибку в следующем предложении, потому что в моем XML-файле нет записи в начале.
var details = (from detail in xmldetails.Descendants("Category")
select (int.Parse(detail.Element("Category_ID").Value))).Max();
Не могли бы вы предоставить мне какой-либо код или ссылку или какое-либо решение, с помощью которого я могу вставить первую запись в файл XML? Если я делаю что-то не так, пожалуйста, наведите меня.