LINQ to SQL“复杂”选择

时间:2011-09-05 12:32:41

标签: vb.net linq-to-sql linq-query-syntax

我有Country => Ligue =>团队(姓名,分数)

我需要选择一个国家/地区的所有球队名称得分。

这样的事情,不起作用)

  来自 ligue myCountry.Ligues 来自 团队 < em> in ligue.Teams              选择 name = team.Name ,得分= team.Score distinct

编辑:

最好使用VB.NET语法。

3 个答案:

答案 0 :(得分:4)

你应该可以做一个简单的Select / SelectMany

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

答案 1 :(得分:3)

以下是Kirk的代码转换为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

答案 2 :(得分:1)

使用jeroenh的代码,使用Kirk的代码,这是工作版本(VB.NET)

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