2011-06-10 53 views
2

任何人都可以將其轉換爲LINQ嗎?將SQL代碼轉換爲LINQ

select distinct t.Product_ID from Product as t 
join Product_UserQuestionaire as s 
on t.Product_ID = s.Product_ID where t.Product_ID not in (


select distinct t.Product_ID from Product as t 
join Product_UserQuestionaire as s 
on t.Product_ID = s.Product_ID 
where s.SpaceID =7) 
+1

SO爲您提供幫助的人,而不是爲他們做的東西。你可以在http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#distinct1找到一些不同查詢的好例子。自己嘗試一下,如果遇到問題,請回答正確的問題:) – mdm 2011-06-10 10:00:27

+1

你嘗試過什麼嗎? – alex 2011-06-10 10:00:42

+2

嘿,謝謝你的建設性批評。我試過了,我明白了。謝謝 – newbie 2011-06-10 10:13:14

回答

1

當LINQ出現問題時,嘗試將子查詢分解爲IQueryable語句。除非您點擊.ToList或枚舉結果,否則它們不會執行,因此這是分離查詢邏輯的好方法。

然而,在這種情況下,SQL查詢是過於複雜:

  var query = (from t in Product 
        join s in Product_UserQuestionaire on t.Product_ID equals s.Product_ID 
        where s.SpaceID != 7 
        select t.Product_ID).Distinct();