Как я могу прочитать файл XML и сохранить его в OODBMS (Siaqodb) с помощью LinQ?

XMl-ODBMS здесь нуб, поэтому я пытался найти наиболее эффективный способ чтения XML-файла и сохранения его в виде объектов данных на моем Siaqodb. Я искал учебник, и его было трудно найти. Если бы кто-нибудь мог помочь мне, я был бы очень рад.

<MusicList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Version>0</Version>
    <Music>
        <Album>Atabales Mix</Album>
        <AlbumArtist>Desconocido</AlbumArtist>
        <AlbumCover>http://192.168.100.5:9000/rpc/cat/IVANS/Covers/Grupo De Palos - Atabales Mix.jpg</AlbumCover>
        <Artist>Grupo De Palos</Artist>
        <ArtistCover>http://192.168.100.5:9000/rpc/cat/IVANS/Covers/Grupo De Palos_300_300.jpg</ArtistCover>
        <Genre>Atabal</Genre>
        <GenreCover>http://192.168.100.5:9000/rpc/cat/IVANS/Covers/Atabal_300_300.jpg</GenreCover>
        <Path>http://192.168.100.5:9000/rpc/cat/IVANS/Music/Atabal/GRUPO DE PALO BANI - TRACK 04.MP3</Path>
        <Title>Dolores</Title>
    </Music>
    <Music>
        <Album>Atabales Mix</Album>
        <AlbumArtist>Desconocido</AlbumArtist>
        <AlbumCover>http://192.168.100.5:9000/rpc/cat/IVANS/Covers/Grupo De Palos - Atabales Mix.jpg</AlbumCover>
        <Artist>Grupo De Palos</Artist>
        <ArtistCover>http://192.168.100.5:9000/rpc/cat/IVANS/Covers/Grupo De Palos_300_300.jpg</ArtistCover>
        <Genre>Atabal</Genre>
        <GenreCover>http://192.168.100.5:9000/rpc/cat/IVANS/Covers/Atabal_300_300.jpg</GenreCover>
        <Path>http://192.168.100.5:9000/rpc/cat/IVANS/Music/Atabal/GRUPO DE PALO BANI - TRACK 01.MP3</Path>
        <Title>Espiritu divino</Title>
    </Music>
</MusicList>

Заранее спасибо!

1 ответ

Поэтому я решил проблему с помощью метода XDocument.Load(), вызвав элементы объекта и выполнив цикл foreach с условием внутри. Затем я сохранил эти объекты в базе данных.

namespace WindowsFormsApplication5
{
    public class Program
    {
        public class Canciones
        {
            public string Album { get; set; }
            public string AlbumArtist { get; set; }
            public string AlbumCover { get; set; }
            public string Artist { get; set; }
            public string ArtistCover { get; set; }
            public string Genre { get; set; }
            public string GenreCover { get; set; }
            public string Path { get; set; }
            public string Title { get; set; }
            public int OID { get; set; }
        }
       public static void Main()
        {
            int counter = 0;
            Siaqodb siaqodb = new Siaqodb(@"d:\Siaqodb\database\TEST\");

           List<Canciones> musicList = (from m in XDocument.Load(@"C:\Users\ivan_000\Desktop\MusicList.xml")
                                           .Descendants("Music")
                                           select new Canciones{
                                           Album = m.Element("Album").Value,
                                           AlbumArtist = m.Element("AlbumArtist").Value,
                                           AlbumCover = m.Element("AlbumCover").Value,
                                           Artist = m.Element("Artist").Value,
                                           ArtistCover = m.Element("ArtistCover").Value,
                                           Genre = m.Element("Genre").Value,
                                           GenreCover = m.Element("GenreCover").Value,
                                           Path = m.Element("Path").Value,
                                           Title = m.Element("Title").Value,
                                           OID = musicList.Count()                                          

                                           }).ToList();

                        foreach(Cancion cancion in musicList)
                        {
                            counter++;
                            if (counter <= 100)
                                    siaqodb.StoreObject(cancion);   
                            else
                                break;                  
                        }

        }

    }
Другие вопросы по тегам