繁体   English   中英

XML 至 SQL 实体框架

[英]XML To SQL Entity framwork

我创建了一个XML Class和一个SQL Entity Class

I need to map the XML to my SQL however I have stumbled into a problem with Arrays which I cannot figure out how to solve.

第一个代码

  using (var fileStream = File.Open(@"D:\ArbejdeSEGES\bigdutchman\BigDutchmanXMLReader\BigDutchmanXMLReader\XML\xml-export-01-04-2019 07.00.11.xml", FileMode.Open))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(export));
                var document = (export)serializer.Deserialize(fileStream);

                var ventilTable = new Ventil();    

                ventilTable.FarmId = document.farmer.farmid.ToString();

                foreach (var doc in document.device)
                {
                    systemTable.Device = doc.name;

                    foreach (var dialGrp in doc.dialoggroup)
                    {
                        if (dialGrp.id == 1)
                        {
                         ventilTable.Col1 = ????
                         ventilTable.Col2 = ?????

XML

  <export>
  <farmer>
      <farmid>42604</farmid>
  </farmer>
  <device name="FARE-LØBE" online="true">
     <dialoggroup id="1" name="Ventil">
          <field id="1" name="Ventil nr">
              <value index="0">DISP</value>
              <value index="1"></value>
              <value index="2"></value>
              <value index="3"></value>
              <value index="4"></value>
              <value index="5"></value>
              <value index="6"></value>
              <value index="7"></value>
              <value index="8"></value>
              <value index="9"></value>
              <value index="10"></value>
              </field>
               <field id="2" name="1. Mix nr.">
          <value index="0">1</value>
          <value index="1">1</value>
          <value index="2">1</value>
          <value index="3">1</value>
          <value index="4">1</value>
          <value index="5">1</value>
          <value index="6">1</value>
          <value index="7">1</value>
          <value index="8">1</value>
          <value index="9">1</value>
          <value index="10">1</value>
          </field>

正如你所看到的,我现在很困。 我不确定如何一次分配所有值? 我应该先列一个清单吗? 数据集?

对话组 = 表

字段 = 列

值 = 行值

希望我得到了其他一切请询问:)

使用以下序列化:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XmlReader reader = XmlReader.Create(FILENAME);
            XmlSerializer serializer = new XmlSerializer(typeof(Export));
            Export export = (Export)serializer.Deserialize(reader);
        }
    }
    [XmlRoot("export")]
    public class Export
    {
        [XmlElement("farmer")]
        public Farmer farmer { get; set; }

        public Device device { get; set; }
 
    }
    public class Farmer
    {
        public int farmid { get; set; }
    }
    public class Device
    {
        [XmlAttribute()]
        public Boolean online { get; set; }
        [XmlAttribute()]
        public string name { get; set; }

        [XmlElement("dialoggroup")]
        public Dialoggroup dialoggroup { get; set; }
    }
    public class Dialoggroup
    {
        [XmlAttribute()]
        public int id { get; set; }
        [XmlAttribute()]
        public string name { get; set; }

        [XmlElement("field")]
        public List<Field> fields { get; set; }
    }
    public class Field
    {
        [XmlAttribute()]
        public int id { get; set; }
        [XmlAttribute()]
        public string name { get; set; }

        [XmlElement()]
        public List<Value> value { get; set; }

    }
    public class Value
    {
        [XmlAttribute()]
        public int index { get; set; }
        [XmlText]
        public string value { get; set; } 
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM