簡體   English   中英

將數據從xml導入數據庫

[英]import data from xml into database

我想通過xml文件將數據導入到我的數據庫中:

var doc = XDocument.Load(XMLFile);
var nodes = from e in doc.Descendants("Person")
                    where e.Element("PersonID").Value == "1"
                    select e;

人員表與來自節點的數據具有相同的結構。 使用實體framework / linq-to-xml方便嗎?

我不知道您所說的“方便”是什么意思,但是肯定有可能。

如果模式匹配,則可以非常輕松地將XElement節點映射到LINQtoSQL / EF生成的對象。

您上面的代碼應導致XName “ Person”的IEnumerable<XElement>

所以從那里您只需要做類似的事情

  IEnumerable<Person> people = nodes.Select(xe => new Person { 
                          PersonID = int.Parse(xe.Element("PersonID").Value), 
                          OtherProperty = xe.Element("OtherProperty").Value
                                 });

您將需要對某些數據類型進行一些轉換,例如int.Parse() ,因為XElement.Value返回一個字符串。

然后將其保存到數據庫中,我們假設MyDataContext是的LINQ to SQL生成DataContext對象與屬性People是一個Table<Person> 您要做的就是:

  MyDataContext db = new MyDataContext();
  db.People.InsertAllOnSubmit(people);
  db.SubmitChanges();

如果XML的格式正確(即,如果使用與DataSet相同的格式),則可以使用DataSet.ReadXml()讀取它,然后使用所有常規ADO工具將數據插入數據庫中。 雖然它確實幫助,如果你實際上已經產生從該XML DataSet擺在首位,因此有一個模式ReadXml使用,因為這解決了大量的數據類型轉換的問題,你想,否則必須采取明確的護理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM