У меня есть запрос LINQ, где я выбираю родительский элемент, который имеет предложение where
и orderby
. Мне нужен только первый результат, поэтому я применяю к нему .Take(1)
. Затем мне нужно выбрать два отдельных дочерних узла из родителя, каждый из которых имеет предложения «где».LINQ Подзапрос после .Take (1)
Я успешно выполнил это с использованием двух различных запросов LINQ, но мне кажется, что в нем должен быть только один запрос с подзапросом в нем, часть, которая меня висит, - это .Take(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