Мне нужна помощь для группировки по моему классу объектов XML.
здесь мои данные с SQL-сервера, мой Запрос
( выберите * из TaxXMLdb ) =
ИНН
DocEntryAR
BuyerDocNum
Имя покупателя
Опт
ItemCode
Имя
DocEntryAR2
ААА
100100
5533
Анто
0
2001
Книга
100100
ААА
100100
5533
Анто
0
2002
Письменный стол
100100
ААА
100100
5533
Анто
0
2003
Ключ
100100
ААА
200100
7722
Дани
0
5001
Лампа
200100
ААА
200100
7722
Дани
0
5002
Автомобиль
200100
ААА
300100
2211
Нина
0
3001
Вентилятор
300100
Я хочу, чтобы вывод XML выглядел так:
Группировать по заголовку DocEntryAR, для каждая деталь (Opt, ItemCode, Name, DocEntryAR2)
((DocEntryAR, BuyerDocNum, BuyerName) в качестве заголовка)
((Opt, ItemCode, Имя, DocEntryAR2) как Подробности), вывод XML должен выглядеть следующим образом =
AAA
[*]
100100
5533
Anto
0
2001
Book
100100
0
2002
Desk
100100
0
2003
Key
100100
200100
7722
Dani
0
5001
Lamp
200100
0
5002
Car
200100
300100
2211
Nina
0
3001
Fan
300100
я использую этот список классов xml, и код может генерировать XML из C#
с использованием System.Xml.Serialization;
но мой выходной XML по-прежнему неправильный результат, выглядит не так, как я хочу.
Любой может помочь в восстановлении/создании нового класса и группы списка с помощью LinQ или другого решения
для такого вывода XML .
мой класс =
[Serializable]
[XmlType(TypeName = "TaxInvoiceBulk")]
public class TaxInvoiceBulk
{
public string TIN { get; set; }
[XmlArray("ListOfTaxInvoice")] // g.First()).ToList();
foreach (var grup2 in grup11)
{
grup2.GoodServices.Add(new GoodService
{
Opt = myReader["Opt"].ToString(),
ItemCode = myReader["ItemCode"].ToString(),
Name = myReader["Name"].ToString(),
DocEntryAR2 = myReader["DocEntryAR2"].ToString()
});
}
}//END While
myConnection.Close();
затем
4. я показываю результат XML, используя окно сообщения
private void btnXML_Click(object sender, EventArgs e)
{
var serialXML1 = new XmlSerializer(typeof(TaxInvoiceBulk));
using (StringWriter textWriter1 = new StringWriter())
{
serialXML1.Serialize(textWriter1, Tax123);
MessageBox.Show($@"{textWriter1.ToString()}");
}
}
[*]Мой результат XML по-прежнему неверен, я не знаю, как сгруппировать GoodService с помощью TaxInvoice.DocEntryAR.
[/list]
[*]
0
100100
5533
Anto
0
3001
Fan
300100
0
200100
7722
Dani
0
3001
Fan
300100
0
300100
2211
Nina
0
3001
Fan
300100
- где лучше всего Loop & Distinct и GroupBy используют Linq ??, это мой GroupBy все еще неправильный,
foreach (var grup2 in grup1)
{
grup2.GoodServices.Add(new GoodService
{
Opt = myReader["Opt"].ToString(),
ItemCode = myReader["ItemCode"].ToString(),
Name = myReader["Name"].ToString(),
DocEntryAR2 = myReader["DocEntryAR2"].ToString()
});
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... st-for-xml