我在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