where
とorderby
句を持つ親要素を選択するLINQクエリがあります。この最初の結果だけが必要なので、.Take(1)
を適用します。次に、それぞれが "where"節を持つ親から2つの別々の子ノードを選択する必要があります。LINQサブクエリ後.Take(1)
2つの別個のLINQクエリを使用してこれを正常に実行しましたが、サブクエリで1つのクエリを必要とするように感じました。私をぶつけている部分は親の.Take(1)
です。エラーなしで呼び出します。
これは私が今持っているものですが、これを1つのクエリに組み合わせることは可能ですか?
var parent=
(from parentXML in myDal.GetMyXML().Elements("parentElements")
where DateTime.Parse((string)parentXML.Attribute("startDate")) <= currentDate
orderby DateTime.Parse((string)parentXML.Attribute("startDate")) descending
select parentXML).Take(1);
と:
var children =
(from firstChild in parent.Elements("childElements")
where (string)firstChild.Attribute("type") == "first"
from secondChild in parent.Elements("childElements")
where (string)secondChild.Attribute("type") == "second"
select new { first = firstChild , second = secondChild }).ToList();
あなたは何エラーが出るんし、サンプルXMLを投稿することができますか? – rojobo