我有一个包含大约70-100个标签的大型XML文件,包括列表(子节点)等。我有一个Oracle数据库设置,所有表都与标签名称匹配。我想知道将XML中的所有数据插入到我拥有的Oracle数据库中的最快方法是什么。我已经在下面编写了这个方法,但是为80个表格编写这个方法将变得非常繁琐:
public ActionResult writexmldata()
{
var file = System.IO.Directory.GetFiles("C:\\Workspace\\CPTStaging", "*.xml");
CPTEntities db;
foreach (var xmldoc in file)
{
db = new CPTEntities();
XDocument xdoc = XDocument.Load(xmldoc);
XNamespace ns = "http://www.example.org/genericClientProfile";
CPTPROFILE doc = new CPTPROFILE();
db.CPTPROFILEs.AddObject(doc);
db.SaveChanges();
var header = xdoc.Descendants(ns + "header").Single();
var cprofile = xdoc.Descendants(ns + "clientProfile").Single();
var profadv = xdoc.Descendants(ns + "section").Single();
H_HEADER head = new H_HEADER();
head.SERVICEID = (string)header.Element(ns + "serviceId");
head.VERSIONID = (decimal)header.Element(ns + "versionId");
head.BRANDCODE = (string)header.Element(ns + "brandCode");
head.CREATIONTIME = (DateTime)header.Element(ns + "creationTime");
db.H_HEADER.AddObject(head);
CP_PROFESSIONALADVISERS advisers = new CP_PROFESSIONALADVISERS();
advisers.SUBCOMMENTWILLS = (string)profadv.Element(ns + "subCommentWills");
db.CP_PROFESSIONALADVISERS.AddObject(advisers);
db.SaveChanges(System.Data.Objects.SaveOptions.None);
}
return View("Index");
}
答案 0 :(得分:0)
我写了一个代码生成器,我使用你编写的方法作为模板,将对系统表all_tab_columns
,all_tables
运行查询,并生成70-80 simillar方法