我想知道是否有人可以帮助我。 我是LINQ的新手,仍然试图了解它是如何组合在一起的。
我在SQL中有一个简单的左连接查询,返回表1中表2中不存在的所有事务。两个表的结构相同。
SELECT Table1.*
FROM Table1 LEFT JOIN Table2 ON Table1.DealReference = Table2.DealReference
WHERE (((Table2.DealReference) Is Null));
有人可以指导我,如何在LinQ中实现同样的目标。
我正在使用以下DataTables:
Dim currentDataTable = _DataTable1.AsEnumerable
Dim previousDataTable = _DataTable2.AsEnumerable
我希望将结果输出回数据表。
由于
BM
答案 0 :(得分: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()