Linq查询只返回1行

时间:2011-05-23 12:35:28

标签: linq select join

Dim ds = From a In db.Model
           Join b In db.1 On a.id Equals b.ID
           Join c In db.2 On a.id Equals c.ID
           Join d In db.3 On a.id Equals d.ID
           Join f In db.4 On a.id Equals f.ID
   Select a.id, a.Ref, a.Type, a.etc

以上是我的linq查询。目前我只从当前60行返回的数据库中获取第一行。请告诉我我哪里出错了以及如何选择所有记录。

提前致谢!

更新:

当我取出所有连接时:

 Dim ds = From a In db.1, b In db.2, c In db.3, d In db.4, f In db.5
Select a.id, a.Ref, a.type, b.etc, c.etc, d.etc

我收到了system.outofmemory异常!

1 个答案:

答案 0 :(得分:2)

所有连接匹配时,你只会产生一行 - 换句话说,当Model中有一行带有AP,一个选项,一个谈话时和发票。我的猜测是,只有其中一个。

LINQ默认执行内连接。如果您正在寻找左外连接(即特定行可能没有发票或谈话等),那么您需要使用组连接,通常与DefaultIfEmpty一起使用。

我对VB语法并不是特别热门,但是this article看起来就是你所追求的。