我正在尝试根据从XSD生成的类文件创建表。
但并非所有XML信息都在数据库中输入。可能会发生什么?
XML示例:http://pastebin.com/HthQBzQL
更新XSD文件:
我在XSD上的课程:http://pastebin.com/SvuzK4i6
我的EF背景:
public class NFeContext : DbContext
{
public DbSet<TNfeProc> TNfeProc { get; set; }
}
序列化XML并插入Sql Server数据库的代码:
var db = new NFeContext();
db.Database.CreateIfNotExists();
Stream reader = new FileStream(@"C:\XML\file1.xml", FileMode.Open);
XmlSerializer serializer = new XmlSerializer(typeof(TNfeProc));
TNfeProc XML = (TNfeProc)serializer.Deserialize(reader);
XML.NFe.infNFe.transp.retTransp = (XML.NFe.infNFe.transp.retTransp == null) ? new TNFeInfNFeTranspRetTransp() : XML.NFe.infNFe.transp.retTransp;
XML.NFe.infNFeSupl = (XML.NFe.infNFeSupl == null) ? new TNFeInfNFeSupl() : XML.NFe.infNFeSupl;
XML.NFe.infNFe.avulsa = (XML.NFe.infNFe.avulsa == null) ? new TNFeInfNFeAvulsa() : XML.NFe.infNFe.avulsa;
XML.NFe.infNFe.retirada = (XML.NFe.infNFe.retirada == null) ? new TLocal() : XML.NFe.infNFe.retirada;
XML.NFe.infNFe.entrega = (XML.NFe.infNFe.entrega == null) ? new TLocal() : XML.NFe.infNFe.entrega;
XML.NFe.infNFe.exporta = (XML.NFe.infNFe.exporta == null) ? new TNFeInfNFeExporta() : XML.NFe.infNFe.exporta;
XML.NFe.infNFe.compra = (XML.NFe.infNFe.compra == null) ? new TNFeInfNFeCompra() : XML.NFe.infNFe.compra;
XML.NFe.infNFe.cana = (XML.NFe.infNFe.cana == null) ? new TNFeInfNFeCana() : XML.NFe.infNFe.cana;
XML.NFe.infNFe.total.ISSQNtot = (XML.NFe.infNFe.total.ISSQNtot == null) ? new TNFeInfNFeTotalISSQNtot() : XML.NFe.infNFe.total.ISSQNtot;
XML.NFe.infNFe.total.retTrib = (XML.NFe.infNFe.total.retTrib == null) ? new TNFeInfNFeTotalRetTrib() : XML.NFe.infNFe.total.retTrib;
db.TNfeProc.Add(XML);
db.SaveChanges();
还有什么设置可以输入数据库中的所有XML信息?
修改
未输入的信息示例是 det 节点
以下是我的代码创建的表格:
为什么不创建 TNFeInfNFeDets 表和其他表?
det 属性的简单调试