Linq-запрос Entity Framework

Мне нужна помощь в правильном форматировании моего запроса ссылки, я использую EF 3.5:

Dim mediators = (From m In entity.Mediators _
                 Where m.MediatorAvailabilities.Available = "Weekends"
                         Where (m.isActive = True) _
                        Order By m.Sequence _
                        Select New RankingCriteria() With { _
                            .FirstName = m.FirstName, _
                            .LastName = m.LastName, _
                            .CompanyName = m.CompanyName, _
                            .PhoneHome = m.PhoneHome, _
                            .PhoneWork = m.PhoneWork, _
                            .PhoneMobile = m.PhoneMobile, _
                            .Email = m.Email _
                        }).ToList()

У меня есть свойство навигации в Mediators to MediatorAvailabilities. Я хочу сделать что-то вроде того, что находится в предложении where выше, чтобы отфильтровать мои результаты. Это не позволяет мне перейти к соответствующему столбцу, выполнив следующее: m.MediatorAvailabilities.Available.

Как правильно сделать этот фильтр?

Спасибо, Джастин.


person Asmussen    schedule 09.08.2011    source источник


Ответы (1)


Вам нужно будет использовать метод Any. Я не знаю правильного синтаксиса VB, но он должен выглядеть примерно так:

Where m.MediatorAvailabilities.Any(ma => ma.Available = "Weekends")
person Aducci    schedule 10.08.2011
comment
Спасибо Адуччи! Теперь, когда я двигаюсь в правильном направлении, как мне получить все столбцы, в которых значение «Доступно» равно нулю? Я пробовал следующее, но возвращал только строки, в которых «Доступно» = «выходные дни». Я хочу также вернуть строки, если «Доступно» равно Null: .Availability.Contains(выходные) = True)) _ - person Asmussen; 10.08.2011
comment
@Asmussen - я не совсем уверен, о чем вы спрашиваете. Будет лучше, если вы зададите новый вопрос. - person Aducci; 10.08.2011
comment
Адуччи, я разместил здесь отдельный пост: stackoverflow.com/questions/7017889/ - person Asmussen; 11.08.2011