Newbie w arenie Linq do XML ...Jak przekształcić wynik zapytania Linq w XML?
Mam zapytanie Linq z wynikami, a ja chciałbym przekształcić te wyniki w XML. Zgaduję, że musi być stosunkowo łatwy sposób to zrobić, ale nie mogę go znaleźć ...
Dzięki!
Newbie w arenie Linq do XML ...Jak przekształcić wynik zapytania Linq w XML?
Mam zapytanie Linq z wynikami, a ja chciałbym przekształcić te wyniki w XML. Zgaduję, że musi być stosunkowo łatwy sposób to zrobić, ale nie mogę go znaleźć ...
Dzięki!
Przykład. Powinieneś dostać pomysł.
XElement xml = new XElement("companies",
from company in db.CustomerCompanies
orderby company.CompanyName
select new XElement("company",
new XAttribute("CompanyId", company.CompanyId),
new XElement("CompanyName", company.CompanyName),
new XElement("SapNumber", company.SapNumber),
new XElement("RootCompanyId", company.RootCompanyId),
new XElement("ParentCompanyId", company.ParentCompanyId)
)
);
Twoje zapytanie Linq powróci do pewnego rodzaju wykresu obiektów; Po uzyskaniu wyników możesz użyć dowolnej metody, aby przetłumaczyć ją na XML, używając standardowych obiektów. Linq to XML zawiera nowe klasy XML, które przedstawiają jeden sposób tworzenia XML (patrz odpowiedź rAyt na to), ale możesz także użyć XmlSerializer i umieścić atrybuty na twojej klasie/właściwościach, aby kontrolować dokładne dane wyjściowe XML.
Poniższy kod będzie działał dla "linq to entity". Dane muszą znajdować się w pamięci, wykonane za pomocą .ToArray(), aby można było nad tym popracować, w kwestii mówienia.
XElement xml = new XElement("companies",
from company in db.CustomerCompanies.AsEnumerable()
orderby company.CompanyName
select new XElement("company",
new XAttribute("CompanyId", company.CompanyId),
new XElement("CompanyName", company.CompanyName),
new XElement("SapNumber", company.SapNumber),
new XElement("RootCompanyId", company.RootCompanyId),
new XElement("ParentCompanyId", company.ParentCompanyId)
)
);
Potrzebujesz tam .ToArray(). –
dlaczego? Skopiowałem to z mojego projektu. –