Vb.net “LINQ到SQL”;复杂的;选择

Vb.net “LINQ到SQL”;复杂的;选择,vb.net,linq-to-sql,linq-query-syntax,Vb.net,Linq To Sql,Linq Query Syntax,我有国家队=>Ligue=>Team(姓名、分数) 我需要选择一个国家的所有球队名称得分 像这样的东西不起作用) query=fromligue在myCountry.Ligues中,from在ligue.Teams中 选择name=team.name,score=team.scoredistinct 编辑: VB.NET语法更可取。您应该能够执行简单的Select/SelectMany操作 context.Countries.Single(c => c.CountryName == "My

我有国家队=>Ligue=>Team(姓名、分数)

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

像这样的东西不起作用)

query=fromligue在myCountry.Ligues中,from在ligue.Teams中 选择name=team.name,score=team.scoredistinct

编辑:


VB.NET语法更可取。

您应该能够执行简单的Select/SelectMany操作

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

以下是从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查询语法

(编辑我的原始试用版确实不正确,因此我更正了以下问题:)


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


谢谢喂,这不是LINQ to SQL,但我会像这样尝试)而且这不是独特的…@serhio我添加了一个
独特的
。这是LINQtoSQL;只是它使用了“方法”语法而不是“查询”语法。这是Linq,但不是Linq到SQL,因为您不使用任何“SQL”语法。@serhio它是Linq到SQL还是不是由语法决定的。如果它对LINQtoSQL提供程序起作用,则为linq-2-sql。@jeroenh:“如果它对LINQtoSQL提供程序起作用”。因此,从上面的代码中可以看出,它对LINQtoSQL提供程序起作用。重新标记了这个问题,因为它与LINQtoSQL无关-sql@jeroenh我认为问题在于LINQ到SQL;很抱歉,我没有提供您喜欢的语法。@kirk如果您看serhio的评论,我相信他把“linq查询语法”误认为是“linq to sql”。但这可能是错误的。另外,我没有任何语法偏好,你的答案是完全有效的,我对它投了赞成票,我只是根据编辑的问题添加了一个带有VB.Net语法的答案。
dim result = From ligue in myCountry.Ligues
             From team in ligue.Teams
             Select team.Name, team.Score Distinct
  Dim query =  From ligue In myCountry.Ligues
               From team In ligue.Teams
               Select Name = team.Name, Score = team.Score 
               Distinct