我在VB.NET LINQ中有这个具有挑战性的任务。 我有来自不同服务器的2个数据库。我无法链接数据库。该数据是从数据库检索为:VB.NET LINQ加入
DB1
CLIENT_ID Engagement_ID说明已启用
- 600 10真公司1
- 600 20假Company2的
- 700 10 True Company3
- DB2
- CLIENT_ID Engagement_ID说明已启用
- 600 5真公司1
- 600 10假Company2的
- 500 30真公司3
在前端我需要添加的接合存在于DB1中但不在DB2中的客户端。我使用API调用来添加约定,因为我无法更新数据库。 在这个例子中,我需要将DB1的第二条记录添加到DB2,因为客户端ID 600存在于DB2中,并且客户端ID 600的参与ID 20在DB2中不存在。由于DB2中不存在客户端ID 700,因此无法将DB1的第三条记录添加到DB2。 我需要LINQ查询来返回记录,其中DB1.client_id = DB2.Client_ID和DB1.Engagement_ID <> DB2.Engagement_ID。如果LINQ查询返回数据表或某些数据结构中的记录,我可以遍历记录并进行api调用,并将客户端ID,参与ID,启用和描述作为参数传递给DB2。 请帮我解决这个问题。我试图做到这一点,但LINQ允许equijoins,我无法让它适用于DB1.client_id = DB2.Client_ID和DB1.Engagement_ID <> DB2.Engagement_ID。
的T SQL这个任务是:
select * from DB1
left join DB2 on DB1.client_ID = DB2.client_ID
and DB1.Engagement_ID = DB2.Engagement_ID
where DB2.CLient_ID is null and DB2.Engagement_ID is null
and DB1.client_id in (select client_id from DB2)
我想这件T SQL转换为LINQ
在此先感谢
同一个用户在同一问题:http://stackoverflow.com/questio ns/3189631/linq-to-objects/3190037#3190037 – spong 2010-07-06 21:21:00
我改述了这个问题,并再次发布在http://stackoverflow.com/questions/3189631/linq-to-objects/3190037#3190037得到更好的答案 – 2010-07-07 14:28:07