Linq 查询仅返回 1 行


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

我收到系统内存不足异常!

只有当所有联接都匹配时,您才会生成一行 - 换句话说,当有来自 AP、选项、谈话和发票的Model行时。我的猜测是只有其中之一。

默认情况下,LINQ 执行内部联接。如果您正在寻找左外部联接(即特定行可能没有发票或 Talk 等),那么您需要使用组联接,通常与 DefaultIfEmpty 结合使用。

我对 VB 语法不是特别热衷,但这篇文章看起来就是你所追求的。

相关内容

  • 没有找到相关文章

最新更新