Создать XML с LinqToXML в основной родительской дочерней таблице asp.net - PullRequest
0 голосов
/ 19 апреля 2019

В моей электронной коммерции мне нужно создать XML заказов пользователя У меня есть две сущности Order и OrderItems Таблицы связаны с внешним ключом В httpget я передаю идентификатор заказа и отсюда создаю xml В первый раз я пытаюсь создать XML как этот

<?xml version="1.0" encoding="ISO-8859-1"?>
<doc>
  <table name="order">
    <row>
      <field name="Id">1191549131629607</field>
      <field name="Year">2019</field>
      ...
    </row>
  </table>
  <table name="items">
    <row>
      <field name="Id">1191549131629607</field>
      <field name="ProductId">A01</field>
      <field name="Quantity">1</field>
      ...
    </row>
    <row>
      <field name="Id">1191549131629607</field>
      <field name="ProductId">A02</field>
      <field name="Quantity">1</field>
      ...
    </row>
  </table>
</doc>

Теперь я получаю только заголовок таблицы, но не знаю, как вставить orderItems

[HttpGet("{id}")]
    public async Task<IActionResult> CreateXml(Guid id)
    {
        var orders = await _ordersRepository.GetOrders();
        var orderItems = await _orderItemsRepository.GetOrderItems();

        var ordersXml =
        new XElement("doc",
            new XElement("table", new XAttribute("name", "orders"),
                from x in orders
                where x.RolCodEst == id
                select new XElement("row",
                            new XElement("field", new XAttribute("name", "Id"), x.Id),
                            new XElement("field", new XAttribute("name", "Year"), x.Year)

                                   )
                         )
                    );

        XDocument xdoc = new XDocument(new XDeclaration("1.0", "ISO-8859-1", null), ordersXml);

        string dt = DateTime.Now.ToString("yyyyMMddhhmmss");

        var path = Path.Combine(_hosting.ContentRootPath, $"Xml");
        if (!Directory.Exists(path)) Directory.CreateDirectory(path);

        string filePath = Path.Combine(_hosting.ContentRootPath, $"Xml/0_dati_{dt}.xml");

        xdoc.Save(filePath);

        return Ok(ordersXml);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...