2012-01-03 2 views
1

У меня есть два объекта: Poll и PollIp (one-to-many). Я хочу выбрать все опросы, которые не имеют конкретного IP-адреса. Как я могу это сделать? Мой код:Linq запрос из коллекции внутри другой коллекции

public Poll GetNextPoll(string ipAddress) 
{ 
    return Database.Polls 
    .Where(p => p.IsPublish.Value && p.PollIps.Any(i => i.IpAdress != ipAddress)) 
    .FirstOrDefault(); 
} 

Благодаря

EDIT
В БД я следующее:

Опрос:

id Name  ... 

1  Poll1 
2  Poll2 

PollIp

PollId  IpAdress 
1   ::1 (it's my IP) 

И, запрос должен возвращать Poll с идентификатором, равным 2, потому что в PollIp не PollId с 2

+5

Ну, вы дали код ... как же это не то, что вы хотите? –

+1

Что случилось с кодом? – jeroenh

+0

Обновленный вопрос – user348173

ответ

2
public IEnumerable<Poll> GetPolls(string ipAddress) 
{ 
    return Database.Polls.Where(p => p.PollIps.All(i => i.IpAdress != ipAddress)) 
} 
+0

Спасибо, это работает. – user348173