Der Import von XML in eine SQL Server Tabelle ist mit Linq richtig einfach, wie ich heute feststellen durfte...
Gegeben ist ein XML-File folgender Struktur:
Alexander Zeitler
http://blog.alexonasp.net/
http://blog.alexonasp.net/Rss.aspx
RSS
Die Datenbank-Tabelle besitzt folgende Struktur:
Das dbml-File sieht dann wie folgt aus:
Der Code für das Auslesen des XML-Files ("Bloggers.xml") und das Schreiben in die Tabelle Blogger ist dieser:
XDocument xml = XDocument.Load("Bloggers.xml");
BloggersDataContext db = new BloggersDataContext();
var xmlbloggers = from b in xml.Descendants("blogger")
orderby b.Element("name").Value ascending
select new Blogger
{
bloggername = b.Element("name").Value,
blogurl = b.Element("blogurl").Value,
blogfeedurl = b.Element("blogfeedurl").Value,
feedtype = b.Element("feedtype").Value,
guid = Guid.NewGuid()
};
db.Bloggers.InsertAllOnSubmit(xmlbloggers);
db.SubmitChanges();
Wie man sieht, ist nur minimal mehr Aufwand als für das reine Lesen eines XML-Files notwendig.
Konkret ist es nur die Verwendung von "new Blogger" im select-Statement, die Zuweisung der Guid sowie die Instanzierung des DB-DataContexts und der Aufruf des eigentlichen Inserts / SubmitChanges.
Getestet habe ich das Ganze übrigens mit über 20.000 Datensätzen im XML, wobei hier keinerlei Datenfehler auftauchten. Performance-Tests habe ich aus Zeitgründen nicht durchgeführt - gefühlt waren es ca. 20 Sekunden ;-)
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
Nach dem Launch-Event von VS 2005 vor zwei Jahren bin ich auch beim Launch Event von Visual Studio 2008, SQL Server 2008 und Windows Server 2008 am 19. und 20. Februar 2008 in Frankfurt am Main wieder als ATE (Ask the Expert) für ASP.NET dabei.
Ich freue mich schon auf interessante Gespräche mit den Besuchern und den anderen ATE's wie Torsten Weber, Lars Keller oder Christoph Wille.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5