2009-02-14 117 views
2

我試圖找到一個很好的參考,幫助我這個TSQL語句轉換到LINQ:TSQL轉換爲LINQ轉換參考?

例:

SELECT * FROM Categories WHERE ProductID IN (SELECT ProductID FROM ProductCategories WHERE CatID = 23) 

我不能在任何地方找到引用怎麼辦WHERE「IN」部分。

回答

2

雖然它不是剛好 TSQL轉LINQ參考,我發現MSDN上的101 LINQ Samples頁有助於此目的。

又見this related question

+0

謝謝 - 是這樣的:http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#intersect2我在尋找什麼呢? TSQL「IN」= Linq「相交」? – EdenMachine 2009-02-14 03:13:46

1

見,如果這個工程:

var qry = from c in Categories 
      where (from pc in ProductCategories where pc.CatID = 23 select pc.ProductID).Contains(c.ProductID) 
      select c; 

我不知道是否有是IN的直接轉換凡在LinqToSQL部分(沒有找到任何引用),但我用Contains取而代之。

1

使用擴展方法...

var productIDs = context.ProductCategories 
         .Where(c => c.CatID == 23) 
         .Select(c => c.ProductID); 
var categories = context.Categories 
         .Where(c => productIDS.Contains(c => c.ProductID)); 

編輯:101個LINQ的樣品是簡單的事情,一個很好的參考。對於更復雜的東西,我發現我通常不得不求助於谷歌。僅供參考,如果你想搜索StackOverflow,我發現它使用谷歌更好,並指定site: stackoverflow.com。因人而異。