[英]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.