0

我想知道是否有人可以帮助我。我是 LINQ 的新手,但仍在尝试了解它是如何组合在一起的。

我在 SQL 中有一个简单的左连接查询,返回表 1 中不存在于表 2 中的所有事务。两个表的结构相同。

SELECT Table1.*
FROM Table1 LEFT JOIN Table2 ON Table1.DealReference = Table2.DealReference
WHERE (((Table2.DealReference) Is Null));

有人可以指导我,如何在 LinQ 中实现相同的目标。

我正在使用以下数据表:

    Dim currentDataTable = _DataTable1.AsEnumerable
    Dim previousDataTable = _DataTable2.AsEnumerable

我希望将结果输出回数据表。

谢谢

BM

4

1 回答 1

0

1)Linq-To-DataTable是的子集,Linq-To-Objects并假设数据已经在内存中。因此,如果您想要一个可扩展的解决方案,您可能想看看Linq-To-Sql哪些直接查询数据库。

2)您的联接不是简单的左联接,而是左外联接。例如,您可以使用以下查询来实现:

Dim rows = From r1 In _DataTable1
           Group Join r2 In _DataTable2
           On r1.Field(Of String)("DealReference") Equals r2.Field(Of String)("DealReference")
           Into DataGroup = Group
           From row In DataGroup.DefaultIfEmpty
           Where row Is Nothing
           Select r1
Dim tblresult = rows.CopyToDataTable()
于 2012-11-07T15:39:27.027 回答