Фильтровать запрос LINQ - PullRequest
2 голосов
/ 18 июня 2010

Вот мой запрос.

var query = from g in dc.Group
            join gm in dc.GroupMembers on g.ID equals gm.GroupID
            where gm.UserID == UserID
            select new {
                id = g.ID,
                name = g.Name,
                pools = (from pool in g.Pool
                // more stuff to populate pools

Так что мне нужно выполнить некоторую фильтрацию, но когда я пытаюсь фильтровать

var filter = query.Where(f => f.pools.[no access to list of columns]  

, я не могу получить доступ ни к одному из элементов внутрибассейны».Кто-нибудь знает, как я могу получить к нему доступ?

Что я хотел бы сделать, это:

var filterbyGame = query.Where(f = > f.pools.GameName == "TestGame");

Дайте мне знать, если это вообще возможно, если у меня есть этоsetup.

Спасибо, ребята.

Ответы [ 2 ]

4 голосов
/ 18 июня 2010

В вашем запросе вы не можете сделать Where (f => f.pools.GameName) потому что f это IEnumerable <>

Примерно так должно работать:

Where(f => f.pools.Any(p => p.GameName == "TestGame"))
2 голосов
/ 18 июня 2010

pools - это перечисление, а не один экземпляр. Вот почему вы не получаете имена столбцов.

Вам нужно изменить фильтр на что-то вроде:

var filterByGame = query.Where(f => f.pools.Any(p => p.GameName == "TestGame"));
...