如何使用自动字段映射(MS Access或SQL Server 2012)快速读取XML文件并保存到磁盘上的强类型表中。
想法/想要:
这种方法是否足够快或是否有更好的方法?
步骤1:将xml读入类(c#类是从XSD.exe工具自动生成的)
ser = new XmlSerializer(typeof(MyTypeData));
MyTypeData data;
using (XmlReader reader = XmlReader.Create(XMLFullPath))
{
data = (MyTypeData)ser.Deserialize(reader);
}
步骤2:使用泛型以某种方式将类保存到强类型DataSet DataTable(内存表)中(如下面的方法)
public static DataTable CreateEmptyDataTable(MyTypeData data)
// Creates empty DataTable
{
DataTable dt = new DataTable();
foreach (PropertyInfo info in data.GetProperties())
{
dt.Columns.Add(new DataColumn(info.Name, info.PropertyType));
}
return dt;
}
步骤3:在磁盘上填充表格,其中DataTable字段名称与字段类型相同的XML名称相同。跳过不在表中的xml元素名称。只需添加新行,现在就不用担心密钥匹配了。可以在以后添加基于密钥匹配的更新行。
步骤4:将自定义源添加到dest字段映射:(如何 - 最好的方法是什么?)
答案 0 :(得分:1)
如果你有xml文件中的xsd文件,你可能想尝试xsd2code这是一个codeplex项目。 See here。这使得代码中的类基于Xsd格式。
对我来说,这让我很容易创建xml代码而几乎没有问题。当xml方案更改时,您只需更新代码即可生成新类。
非常好而且整洁,但这是个人偏好。