2009-02-14 85 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。因人而异。