先给点建议。。
当您只使用 web 应用程序时需要注意,因为它不会自动获取更新的文件。至少不是开箱即用的。webapp 会在长时间不使用时被 IIS 卸载,并且几乎总是一个“反应式”应用程序。
但是......可以安排一个任务,您可以在每晚的某个时间打开一个网页,然后以这种方式开始导入。
您可以使用 System.Net.HttpWebRequest 将 xml 提取到本地临时文件夹,如下所示:
HttpWebRequest req = WebRequest.Create("http://url.to/file.xml") as HttpWebRequest;
// check if the cast went well
if (req != null) {
try {
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
System.IO.FileStream outFileStream =
System.IO.File.Create(@"Path\To\localfile.xml");
resp.GetResponseStream().CopyTo(outFileStream);
outFileStream.Close();
outFileStream.Dispose();
}
catch (ExceptionTypeA ex1) {
// Catch all specific exceptions... ommitted here for brevity
}
}
然后,您可以使用 XDocument / XElement (Linq to Xml) 从 Xml 文件中提取数据,并使用标准 ADO.NET API 创建和处理 DB 导入。
只有导入(关系)数据库后,您才能完全使用实体框架进行数据检索/修改。您甚至可以将所有 xml 数据转换为 POCO 类型的结构化集合,并使用实体框架来查询这些集合,但老实说,我认为这不是最好的方法。