Linq to XMLアリーナの初心者...Linqのクエリ結果をXMLに変換するにはどうすればよいですか?
私は結果を持つLinqクエリを持っており、その結果をXMLに変換したいと思います。私はそれを行うのは比較的簡単な方法でなければならないと思っていますが、私はそれを見つけることができません...
ありがとう!
Linq to XMLアリーナの初心者...Linqのクエリ結果をXMLに変換するにはどうすればよいですか?
私は結果を持つLinqクエリを持っており、その結果をXMLに変換したいと思います。私はそれを行うのは比較的簡単な方法でなければならないと思っていますが、私はそれを見つけることができません...
ありがとう!
例。あなたはその考えを得るべきです。
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)
)
);
あなたのLinqクエリは、何らかのオブジェクトグラフを返すでしょう。結果が得られれば、任意のメソッドを使用して標準オブジェクトで可能なXMLに変換できます。 Linq to XMLには新しいXMLクラスが含まれています(これについてはrAytの回答を参照してください).XmlSerializerを使用して、クラス/プロパティに属性を入れて正確なXML出力を制御することもできます。
以下のコードは、 "linq to entities"で動作します。データは、メモリに格納されていなければなりません。ToArray()で処理されていなければなりません。
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)
)
);
そこには.ToArray()が必要です。 –
なぜですか?私はこれを私のプロジェクトからコピーしました。 –