EF代码优先不会创建所有表

时间:2016-09-05 19:03:33

标签: c# sql-server xml entity-framework xsd

我正在尝试根据从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 节点

enter image description here

以下是我的代码创建的表格:

enter image description here

为什么不创建 TNFeInfNFeDets 表和其他表?

det 属性的简单调试

enter image description here

0 个答案:

没有答案