Как получить всех детей, используя запрос linq - PullRequest
1 голос
/ 06 апреля 2011

Мне нужен список всех детей.Как мне получить только дочерние элементы?

вот как я могу получить дочерние элементы

//lets get the parents along with the childs
var parents = from p in context.post
              where p.isDeleted == false && p.userid == new Guid(UserID)
                   let relatedchilds = from c in context.post
                                       where c.id == p.id
                                       select c.id
                   select new
                   {
                        p.id,
                        p.userid,
                        relatedchilds
                   }

//now lets get only the childs in the previous query
var childs = from c in parents
              select new
              {
                   c.relatedchilds.   //This is where my problem is
              }

Как получить только связанных детей в одном столбце?

1 Ответ

4 голосов
/ 06 апреля 2011

Поскольку relatedchilds уже является коллекцией внутри каждого родителя, которая сама является коллекцией, вы можете использовать SelectMany(), чтобы объединить вложенные коллекции в плоскую коллекцию идентификаторов:

var childs = parents.SelectMany( p => p.relatedchilds);

В качестве альтернативы в формате запроса:

var childs = from p in parents
             from child in p.relatedchilds
             select child;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...