私はLinq To Xmlを使用してDataSetからXmlファイルを作成しています。このデータセットでは、1:M関係の顧客、受注テーブルがあります。Linq to Xml - 条件付きでXAttributeを作成する
私のコードスニペット -
現在の顧客注文のタイプが「オンライン」の場合、XElement 'OnlineOrder'にいくつかの属性を追加しようとしています。そうでなければ、 'Online'タイプの注文がなければ、<OnlineOrder/>
のような空のXElementを作成したいと思います。
new XElement("OnlineOrder", ((customerDT.FindByCustomerId(x.CustomerId).GetOrdersRows().Where(o=>o.Type=="Online").Any())
? customerDT.FindByCustomerId(x.CustomerId).GetOrdersRows().Where(p1 => p1.Type == "Online").Select(
(o1 => new XAttribute("Amount", o1.Amount)//,
//new XAttribute("CardType", o1.CardType),
//new XAttribute("Quantity", o1.Quantity)
))
: null)),
上記のコードは正常です。
しかし、私は、私はいくつかの余分な属性を追加しています2行のコメントを外した場合、私はそれらのいずれかがあることで、いくつかのコンパイルエラーを取得する - これが起こっている理由を案内してください
Invalid expression term ':'
。
ありがとうございました!ところで
あなたは属性のリストを指定する必要があり
ありがとうございました!それが私の頭の中に来ていないのが分かりません:-(とにかく、「メソッドに分解してください」--expressionのメソッドを作成してXAttributeコレクションを返すべきでしょうか?これはLinq2Xmlの私の最初の実験です。私のコードの中で最も目を引く高密度な領域が分裂する可能性があります。それも参考にしてください。 – iniki