LINQ to SQL "сложный" выбор - PullRequest
       21

LINQ to SQL "сложный" выбор

0 голосов
/ 05 сентября 2011

У меня есть Страна => Ligue => Команда (Имя, Оценка)

Мне нужно выбрать все оценки команд из страны.

как-то так, не работает)

query = из ligue in myCountry.Ligues, из team в ligue.Teams select name = team.Name , счет = team.Оценка отличается

РЕДАКТИРОВАТЬ:

Синтаксис VB.NET является предпочтительным.

Ответы [ 3 ]

4 голосов
/ 05 сентября 2011

Вы должны быть в состоянии сделать простой Select / SelectMany

context.Countries.Single(c => c.CountryName == "My Country")
    .Ligues.SelectMany(ligue => ligue.Teams
        .Select(team => new { team.Name, team.Score }))
        .Distinct();
3 голосов
/ 05 сентября 2011

Вот код из Кирка, переведенный в синтаксис метода расширения VB10:

dim result = context.Countries.Single(Function(c) c.CountryName = "My Country").
               Ligues.SelectMany(Function(ligue) ligue.Teams).
                      Select(Function(team) new with {team.Name, team.Score }).
                      Distinct()

Я полагаю (но я не уверен, что сейчас у вас нет доступа к компилятору VB), вы можете написать его так, как этот синтаксис запроса vb.net

(РЕДАКТИРОВАТЬ мою первоначальную пробную версию действительно было неверно, поэтому я исправил запрос ниже:)

dim result = From ligue in myCountry.Ligues
             From team in ligue.Teams
             Select team.Name, team.Score Distinct
1 голос
/ 05 сентября 2011

Используя код jeroenh, который использовал код Кирка, вот рабочая версия (VB.NET)

  Dim query =  From ligue In myCountry.Ligues
               From team In ligue.Teams
               Select Name = team.Name, Score = team.Score 
               Distinct
...