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异常!
答案 0 :(得分:2)
当所有连接匹配时,你只会产生一行 - 换句话说,当Model
中有一行带有AP,一个选项,一个谈话时和发票。我的猜测是,只有其中一个。
LINQ默认执行内连接。如果您正在寻找左外连接(即特定行可能没有发票或谈话等),那么您需要使用组连接,通常与DefaultIfEmpty
一起使用。
我对VB语法并不是特别热门,但是this article看起来就是你所追求的。